CMake:如何正确设置新工具链以避免"系统未知到CMake"消息?

vsc*_*ach 10 cmake cross-compiling

我已经为STxP70处理器设置了一个新的CMake工具链文件来交叉编译.我将文件放在我的工作目录中,只需使用以下命令调用cmake:

$ cmake -DCMAKE_TOOLCHAIN_FILE=STxP70_toolchain.cmake ...
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我总是收到一条消息说:

System is unknown to cmake, create:
Platform/STxP70 to use this system, please send your config file to cmake@www.cmake.org so it can be added to cmake
Run Code Online (Sandbox Code Playgroud)

有没有办法将工具链文件放在本地某处,以便CMake识别它而不是抱怨系统未知?我似乎无法在任何地方找到它.

提前致谢.

Pet*_*ter 11

您的工具链文件STxP70_toolchain.cmake由CMake正确找到,因为否则您会看到如下消息:

Could not find toolchain file: STxP70_toolchain.cmake
Run Code Online (Sandbox Code Playgroud)

您看到的消息来自设置变量CMAKE_SYSTEM_NAME,例如命令

cmake .. -DCMAKE_SYSTEM_NAME="BLAH"
Run Code Online (Sandbox Code Playgroud)

产生消息:

System is unknown to cmake, create:
Platform/BLAH to use this system, please send your config file to cmake@www.cmake.org so it can be added to cmake
Run Code Online (Sandbox Code Playgroud)

文件说明:

CMAKE_SYSTEM_NAME:

这是必需的,它是目标系统的名称,即如果CMake将在目标系统上运行,则与CMAKE_SYSTEM_NAME相同.典型的例子是"Linux"和"Windows".此变量用于构建平台文件的文件名,如Linux.cmake或Windows-gcc.cmake.如果您的目标是没有OS的嵌入式系统,则将CMAKE_SYSTEM_NAME设置为"Generic".如果预设了CMAKE_SYSTEM_NAME,则CMake变量CMAKE_CROSSCOMPILING将自动设置为TRUE,因此可用于在CMake文件中进行测试.

您可以设置CMAKE_SYSTEM_NAMEGeneric禁用STxP70.cmakeCMake distibution目录中不存在的警告install\path\to\CMake\share\cmake-2.8\Modules\Platform\