【问题标题】:Missing C & C++ compilers in Windows Subsystem for LinuxLinux 的 Windows 子系统中缺少 C 和 C++ 编译器
【发布时间】: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


【解决方案1】:

原来这是一个已知的错误:https://github.com/Microsoft/BashOnWindows/issues/272

长话短说,它在版本 14352 中已修复。

【讨论】:

    猜你喜欢
    • 2011-06-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 2019-07-21
    • 2014-05-25
    • 1970-01-01
    • 2014-10-12
    相关资源
    最近更新 更多