最近更新于 2022-04-05 12:38
可以在 Ubuntu 中为 OpenWrt 编译可执行文件,动态库等,即自己写代码编译。
我使用的 Ubuntu 20.04,克隆的 OpenWrt 源码版本是 21.098 的。在编译OpenWrt固件的的时候,首先就会编译工具链,然后才能见到下面的编译器。
编译器路径 openwrt/staging_dir/toolchain-xxxxxxxx/bin
我这个是编译 斐讯K2固件(MediaTek Ralink MIPS || MT7620 based boards || Phicomm PSG1218 Ax) 的时候,构建出的编译器。如果是其它平台,编译器名字和路径会不一样。
gcc:mipsel-openwrt-linux-musl-gcc
g++:mipsel-openwrt-linux-musl-g++
在 cmake 中可以指定编译器路径
set(CMAKE_C_COMPILER "gcc路径")
set(CMAKE_CXX_COMPILER "g++路径“)
CMakeLists.txt 模板
cmake_minimum_required(VERSION 3.1) project(openwrt_demo C) set(CMAKE_C_COMPILER "$ENV{HOME}/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-8.4.0_musl/bin/mipsel-openwrt-linux-musl-gcc") include_directories(include) set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) aux_source_directory(src src) add_compile_options(-std=c17 -Wall -Werror -Wextra -pedantic -Wimplicit-fallthrough -Wsequence-point -Wswitch-default -Wswitch-unreachable -Wswitch-enum -Wstringop-truncation -Wbool-compare -Wtautological-compare -Wfloat-equal -Wshadow=global -Wpointer-arith -Wpointer-compare -Wcast-align -Wcast-qual -Wwrite-strings -Wdangling-else -Wlogical-op -Wconversion -Wno-pedantic-ms-format) add_executable(demo ${src})