CMake 交叉编译
交叉编译就是说在平台 A (宿主机)上编译出可以在平台 B (目标机) 上运行的程序,比如在 x86 上编译 ARM 程序
要交叉编译首先要去下载目标平台的工具链,比如要编译 ARM 程序就应该去下载 Linaro 提供的工具链
交叉编译时,我们的 CMake 文件也需要做一些改动
指定目标机的操作系统和处理器架构
SET (CMAKE_SYSTEM_NAME Linux)
SET (CMAKE_SYSTEM_PROCESSOR aarch64)
更换编译器
CMake 提供一些变量来控制程序的编译和链接:
-
CMAKE_C_COMPILER
:编译 C 代码的程序 -
CMAKE_CXX_COMPILER
:编译 C++ 代码的程序
SET (CMAKE_C_COMPILER "aarch64-linux-gnu-gcc")
SET (CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")
更换编译器前应该更改 PATH 环境变量,将你的交叉编译编译器路径放进去,否则 CMake 是没法找到它们的
将以上指令放到一个 xxx.cmake
中,比如 aarch64-linux-gnu.toolchain.cmake
,然后以 cmake -DCMAKE_TOOLCHAIN_FILE=aarch64-linux-gnu.toolchain.cmake ..
的形式使用