交叉编译

cmake 有一个选项, CMAKE_TOOLCHAIN, 用于指定预定义好的交叉编译工具链, 下面是一个简单的配置,用于编译树莓派32位应用:

set(CMAKE_SYSTEM_NAME Linux)

# C/C++ compilers
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)

set(CMAKE_FIND_ROOT_PATH /opt/pi4)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

使用方法也很简单,只需要在编译时指定这个工具链即可:

mdkir build
cd build
cmake -DCMAKE_TOOLCHAIN=/path/to/toolchain ..