CMake 工具链包含多个文件
Posted
技术标签:
【中文标题】CMake 工具链包含多个文件【英文标题】:CMake toolchain includes multiple files 【发布时间】:2013-11-20 04:48:54 【问题描述】:出于不相关的原因,我希望能够将多个文件包含到工具链文件中。假设我的工具链包含以下内容:
消息(状态“文件 1 正常”) 包括(./build/file2)file2 包含标识行:
消息(状态“文件 2 正常”)CMakeLists.txt 包含:
cmake_minimum_required (版本 2.8.8) 项目(专业) message(STATUS "cmakelists.txt is ok")我使用以下命令调用它:
cmake -DCMAKE_TOOLCHAIN_FILE=../../build/file1 ../../现在,我希望得到以下输出:
--file1 没问题 --file2 没问题 -- cmakelists.txt 没问题但我明白了:
--file1 没问题 --file2 没问题 --file1 没问题 --file2 没问题 -- C 编译器标识为 Clang 5.0.0 -- CXX 编译器标识为 Clang 5.0.0 -- 检查工作的 C 编译器:/usr/bin/cc /fullpath/build/file1:2 处的 CMake 错误(包括): 包括找不到加载文件: ./build/file2 调用堆栈(最近的调用优先): /fullpath/build/Mac/CMakeFiles/2.8.12/CMakeSystem.cmake:6(包括) CMakeLists.txt:2(项目) CMake 错误:内部 CMake 错误,cmake 的 TryCompile 配置失败 -- 检查工作的 C 编译器:/usr/bin/cc -- 损坏 /Applications/CMake 2.8-12.app/Contents/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 处的 CMake 错误(消息): C 编译器“/usr/bin/cc”不能编译简单的测试程序。 它失败并显示以下输出: CMake 将无法正确生成此项目。 调用堆栈(最近的调用优先): CMakeLists.txt:2(项目) -- 配置不完整,出现错误!CMake 不仅两次打印信息,还声称在此之后第三次找不到包含的文件。
有什么想法吗?
【问题讨论】:
比这更糟糕。尝试将状态更改为详细。对我来说 toolchain.cmake 运行了 12 次,我的问题是只设置了前 2 次 -DVAR=VAL 变量。以下 10 次未设置。然而更糟糕的是,如果我真的尝试设置工具链路径,我会得到一个无限循环。有人可以解释发生了什么吗? 【参考方案1】:不仅cmake两次打印信息
正常:在配置过程中,会执行几个步骤。每一步都使用了工具链文件。
它还声称在此之后第三次找不到包含的文件。有什么想法吗?
提供绝对路径。
【讨论】:
我只是这样做并发现,cmake 第三次使用“fullpath/build/target/CMakeFiles/CMakeTmp/”目录,而不是预期的“fullpath”。当然它找不到文件..以上是关于CMake 工具链包含多个文件的主要内容,如果未能解决你的问题,请参考以下文章