【发布时间】:2016-10-18 23:00:30
【问题描述】:
我正在尝试使用适用于 Linux 的 Windows 子系统(Windows 10 build 10.0.14342)编译 LLVM,但我不断收到关于我如何缺少 C 和 C++ 编译器的 cmake 错误。尽管在 bash 中使用 apt-get 具有 gcc、g++ 和 build-essentials。我的命令如下:
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" ../llvm-3.8
我从 CMake 得到一堆错误
CMake 错误:缓存文件 /home/andrew-wsl/llvm/build/CMakeCache.txt 中的解析错误。 违规条目:调试信息构建。 CMake 错误:缓存文件 /home/andrew-wsl/llvm/build/CMakeCache.txt 中的解析错误。 违规条目:CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED -- C 编译器标识未知 /usr/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:186 (configure_file) 处的 CMake 错误: configure_file 配置文件问题 调用堆栈(最近的调用优先): CMakeLists.txt:54(项目) -- CXX 编译器标识未知 /usr/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:185 (configure_file) 处的 CMake 错误: configure_file 配置文件问题 调用堆栈(最近的调用优先): CMakeLists.txt:54(项目) -- ASM 编译器标识为 GNU -- 找到汇编程序:/usr/bin/cc -- 检查工作的 C 编译器:/usr/bin/cc /usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:47 (try_compile) 处的 CMake 错误: 文件的未知扩展名“.c” /home/andrew-wsl/llvm/build/CMakeFiles/CMakeTmp/testCCompiler.c try_compile() 仅适用于启用的语言。目前这些是: ASM C CXX 请参阅 project() 命令以启用其他语言。 调用堆栈(最近的调用优先): CMakeLists.txt:54(项目) -- 检查工作的 C 编译器:/usr/bin/cc -- 损坏 /usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 处的 CMake 错误(消息): C 编译器“/usr/bin/cc”不能编译简单的测试程序。 它失败并显示以下输出: CMake 将无法正确生成此项目。 调用堆栈(最近的调用优先): CMakeLists.txt:54(项目) -- 配置不完整,出现错误! 另请参阅“/home/andrew-wsl/llvm/build/CMakeFiles/CMakeOutput.log”。 另请参阅“/home/andrew-wsl/llvm/build/CMakeFiles/CMakeError.log”。 安德鲁-wsl@计算机:~/llvm/build$CMakeError.log 可以在这里找到:http://pastebin.com/7rWYFGu5
CMakeOutput.log 可以在这里找到:http://pastebin.com/2BaEFTvR
我不确定发生了什么,因为我能够使用 gcc 和 g++ 成功编译 helloworld 程序。
【问题讨论】:
-
您是否在同一个二进制输出目录中切换了编译器/工具链?看起来完全删除您的二进制输出目录并从头开始重试会有所帮助。缓存错误是所描述场景的典型情况。
-
@Florian 您所说的文件夹是输出生成的 Makefile 的文件夹吗?如果是这样,那么是的。我确实完全删除了它,但之后我仍然遇到相同的 CMake 错误。
-
(configure_file): configure_file Problem configuring file错误非常奇怪。看起来像文件访问问题(磁盘空间不足、权限不足等)。也请查看CMakeFiles/CMakeError.log。 -
@Florian 我已在问题底部附加了指向 CMakeError.log 的链接。好像有些 CMake 测试文件无法编译?
标签: windows bash cmake windows-10 subsystem