跳到主要内容

CMake 工具链文件

工具链文件 是一份在 CMake 配置早期被加载的 .cmake 脚本,用于设置目标平台、编译器、sysroot、find 行为等,常用于交叉编译指定编译器。无需改项目里的 CMakeLists.txt,只需在配置时通过 -DCMAKE_TOOLCHAIN_FILE= path 指定即可。

使用方式

cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake ..

CMake 会在处理 project() 之前加载该文件,因此其中设置的 CMAKE_C_COMPILERCMAKE_SYSTEM_NAME 等会生效。

常见内容

  • CMAKE_SYSTEM_NAME:目标系统(如 Linux、Windows、Darwin)。
  • CMAKE_SYSTEM_PROCESSOR:目标处理器(如 aarch64、x86_64)。
  • CMAKE_C_COMPILER / CMAKE_CXX_COMPILER:C/C++ 编译器完整路径或名称。
  • CMAKE_FIND_ROOT_PATH:目标环境的根目录(如 sysroot),供 find_* 搜索。
  • CMAKE_FIND_ROOT_PATH_MODE_PROGRAM / LIBRARY/INCLUDE/PACKAGE:控制在 root 下是否只查库/头文件等,避免用到宿主机程序。

交叉编译的完整示例见 CMake 交叉编译 中的 arm_linux_setup.cmake

小结

  • 工具链文件在配置早期加载,用于设定系统、编译器与查找规则。
  • 通过 -DCMAKE_TOOLCHAIN_FILE=... 传入,便于同一项目切换本机/交叉编译而不改 CMakeLists.txt。
阿基米东
📝 作者:阿基米东

GetIoT.tech 创始人,独立开发者,Linux 重度用户,开源软件作者,创业者,INTJ