CMake忽略工具链文件.如何获得调试/错误输出?

Goo*_*ide 6 cmake cross-compiling

我目前正在尝试使用CMake进行交叉编译.但是,CMake似乎忽略了指定的工具链

cmake -DCMAKE_TOOLCHAIN_FILE=my-toolchain.cmake .
Run Code Online (Sandbox Code Playgroud)

要么

cmake . -DCMAKE_TOOLCHAIN_FILE=my-toolchain.cmake
Run Code Online (Sandbox Code Playgroud)

如果省略CMAKE_TOOLCHAIN_FILE选项,则会生成完全相同的Makefile.此外,如果我故意给出错误的文件名或在工具链文件中插入语法和路径错误,CMake也不会抱怨.

有没有办法在CMake运行期间获得更多的错误/调试输出?我能找到的唯一选择是"--debug-output",这在我的情况下并不是很有帮助.

Goo*_*ide 13

我的错.CMake总是重新生成现有的构建树.通过删除构建目录中的CMakeCache.txt,CMake将被强制生成新的构建树,并且不再忽略CMAKE_TOOLCHAIN_FILE选项.请参阅CMake常见问题解答.

  • 如果对工具链文件进行更改,则应始终使用完全空的构建树.除非您确切知道工具链文件更改会影响哪些缓存条目并且它们对于增量重建是"安全的",否则您应该假设最坏的情况:更改工具链文件时应重建所有内容... (2认同)