【问题标题】:CMake error no CMAKE_C_COMPILER could be found using Xcode and GLFWCMake error no CMAKE_C_COMPILER can be found using Xcode and GLFW
【发布时间】:2017-05-13 20:23:18
【问题描述】:

我正在尝试按照本教程开始使用 OpenGL:http://www.learnopengl.com/#!Getting-started/Creating-a-window,它需要下载 glfw 和 CMake。 我已将下载的 glfw 文件夹设置为源代码文件夹,并在该文件夹中创建了另一个名为“build”的文件夹,然后按照教程的要求将其设置为二进制文件的构建文件夹。 我单击“配置”并选择 XCode 作为生成器,因为我在 Mac 上。 问题是当我尝试配置项目时,CMake 给了我这个错误:

C 编译器标识未知 CMakeLists.txt:3(项目)处的 CMake 错误: 找不到 CMAKE_C_COMPILER。

配置不完整,出现错误! 也可以看看 “/Users/standard/Desktop/glfw-3.2.1/build/CMakeFiles/CMakeOutput.log”。

另请参阅 “/Users/standard/Desktop/glfw-3.2.1/build/CMakeFiles/CMakeError.log”。

我已经阅读了这个问题,但据我所知,它没有我需要的东西: CMake Error at CMakeLists.txt:30 (project): No CMAKE_C_COMPILER could be found

谢谢。

【问题讨论】:

    标签: c++ xcode cmake


    【解决方案1】:

    如果你已经安装了XcodeCommand Line Tools for Xcode,试试这个:

    sudo xcode-select --reset
    

    【讨论】:

    • 你能解释一下这个答案吗?
    • @Sam1370 Xcode 命令行工具通过安装命令行开发工具以及 macOS SDK 框架和头文件,通过终端实现 UNIX 风格的开发。包括许多有用的工具,例如 Apple LLVM 编译器、链接器和 Make。
    • 谢谢!这似乎对我有用,但我也清理了我的构建目录,所以这可能也有帮助。
    • 即使有一个完全干净的构建目录也不会解决这个问题。
    【解决方案2】:

    安装 Homebrew 后,我使用 Xcode10 / Cmake 3.12 发生了这种情况。运行 sudo xcode-select --reset 为我修复了它。

    【讨论】:

      【解决方案3】:

      您是否安装了 Xcode 和 Xcode 命令行工具?

      xcode-select --install
      

      如果您安装了 Xcode 命令行工具,您应该不会再收到 xcrun is missing 错误。

      你是如何安装 Cmake 的?确保安装了 Xcode 命令行工具后,请从系统中完全删除 Cmake 并重新安装。你有一个搞砸的配置。有一些方法可以在不全新安装的情况下调试和修复它,但由于您是新手,这将是最简单且最不令人沮丧的方法。

      如果您确实安装了 Xcode 命令行工具,则 hstdt 建议您尝试以下操作:

      sudo xcode-select --reset
      

      【讨论】:

      • 我按照你说的做了,我可以生成项目了!所以谢谢。现在我发现了一个新问题,基本上在我的构建文件夹中我找不到 XCode 的 /lib 和 /include 文件夹,因为 tuorial 需要。另外我的格式不同,但我猜这取决于 IDE(本教程使用 Visual Studio)。您对文件夹问题有任何想法吗?
      • 在基于 Unix 的操作系统上的工作方式略有不同。可以考虑 /lib 和 /include 的三个位置: /usr/{lib|include}/ stackoverflow.com/questions/23450334/…
      • @hstdt 您的解决方案有帮助,将其作为答案发布
      • @hstdt 我同意这一点。你的解决方案让我摆脱了束缚。
      • 安装命令行工具并运行--reset后,我必须重新安装CMake才能找到它们。
      【解决方案4】:

      这个错误意味着 CMake 找不到你的标准 C/C++ 编译器,看起来你需要自己导出环境变量。您可以通过以下方式找到 C/C++ 编译器的路径:

      xcrun -find c++
      xcrun -find cc
      

      然后,当您拥有路径后,在 gui 中创建两个变量。如果你是从 cline 运行它,它会是这样的

      cmake -D CMAKE_C_COMPILER="/path/to/your/c/compiler/executable" -D CMAKE_CXX_COMPILER="/path/to/your/cpp/compiler/executable" ...
      

      【讨论】:

      • 在终端中运行这些命令给我这个错误:xcrun:错误:无效的活动开发者路径(/Library/Developer/CommandLineTools),缺少xcrun:/Library/Developer/CommandLineTools/usr/bin /xcrun。我是否按照您建议的正确方式进行操作?抱歉,我真的很陌生。
      • 我不能只编辑一个字符,第二个 -D 后有一个缺失的等号
      • 非常有帮助,为我工作``` cmake -D CMAKE_C_COMPILER="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc" -D CMAKE_CXX_COMPILER= “/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++”..```
      • 不错的解决方案。在一行中执行此操作的一种简洁方法是使用反引号:“ -DCMAKE_C_COMPILER=`xcrun -find cc` -DCMAKE_CXX_COMPILER=`xcrun -find c++`”。我很惊讶 cmake 在 mac 上如此糟糕,以至于它自己无法做到这一点。
      • 非常适合我!很好的解决方案。有了@user3690202 建议,它会变得更好
      【解决方案5】:

      在全新的 Xcode 安装中,命令行工具抱怨同意 EULA,哪些构建工具不喜欢。你可以做什么:

      sudo xcodebuild -license
      

      【讨论】:

      • 我安装了 xcode,但从未接受过许可。 sudo xcodebuild -license accept 为我工作
      【解决方案6】:

      如果你在 Mac 电脑上并且有 Homebrew,你可以简单地升级 cmake,强制重新配置编译器:

      brew upgrade cmake
      

      【讨论】:

        【解决方案7】:

        就我而言,我需要从 CMake official site 安装 CMake,下载 .dmg,安装它,然后将 CMake 文件夹添加到系统的 PATH 中。

        安装前which cmake的输出为/usr/local/bin/cmake
        安装后应该是/Applications/CMake.app/Contents/bin/cmake

        这已经为我解决了这个问题。

        【讨论】:

          【解决方案8】:

          如果在我的机器上启用了ccache,我会得到这个错误。禁用 ccache 为我解决了这个问题。

          要检查是否启用了 ccache,请打印系统变量 CC 或 CXX:

          echo $CC
          echo $CXX
          

          这将打印如下内容:ccache clang -Qunused-arguments -fcolor-diagnostics。 (CC 或 CXX 通常被 .bashrc.zshrc 文件覆盖。)

          要禁用 ccache,请使用以下命令:

          CC=clang
          CXX=clang++
          

          然后重建cmake项目:

          cmake -G Xcode <path/to/CMakeLists.txt>
          

          显然,也可以将 CMake 的 Xcode 生成器与 ccache 结合使用,如 here 所述。但我自己从未尝试过。

          【讨论】:

            【解决方案9】:

            Xcode 10 和更早版本的 CMake 似乎破坏了编译器检测。我知道 CMake 2.2 对我来说很糟糕,升级到最新版本 (2.13) 为我解决了这个问题。它在 Xcode 9 上运行良好,但升级失败了。我尝试了其他解决方案(根据您的情况都很好),但升级 CMake 解决了这个问题。

            【讨论】:

              【解决方案10】:

              如果您使用 CLion 并遇到此问题,请尝试将 Toolchains 设置中的 C 和 C++ 编译器位置更改为最新位置。默认的GCC安装目录是/usr/local/Cellar/gcc/...

              【讨论】:

                【解决方案11】:

                当我为 CMAKE_OSX_SYSROOT 设置了无效值时,我收到了这个错误。我试图给它起 SDK 的名称,例如“macOS 10.13”。将其设置为 SDK 的完整路径可解决此问题。

                /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
                

                【讨论】:

                  猜你喜欢
                  • 2022-12-15
                  • 2012-07-18
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2023-03-20
                  相关资源
                  最近更新 更多