gpt4 book ai didi

c++ - CMakeLists.txt :30 (project): No CMAKE_C_COMPILER could be found 处的 CMake 错误

转载 作者:IT老高 更新时间:2023-10-28 12:01:04 35 4
gpt4 key购买 nike

我正在尝试使用 CMake 制作一个 Visual Studio 解决方案来编译最新版本的 aseprite 并且 CMake 不断给我:

No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.

我已经下载了 GCC,我正在使用 Visual Studio 2015 .

我正在关注本教程:

https://github.com/aseprite/aseprite/blob/master/INSTALL.md

最佳答案

那些错误信息

CMake Error at ... (project):
No CMAKE_C_COMPILER could be found.
-- Configuring incomplete, errors occurred!
See also ".../CMakeFiles/CMakeOutput.log".
See also ".../CMakeFiles/CMakeError.log".


CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.
Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
...
-- Configuring incomplete, errors occurred!

只是意味着 CMake 无法找到您的 C/CXX 编译器来编译一个简单的测试程序(CMake 在检测您的构建环境时首先尝试的事情之一)。

查找问题的步骤取决于您要生成的构建环境。以下教程是 StackOverflow 上的一系列答案以及我自己在 Microsoft Windows 7/8/10 和 Ubuntu 14.04 上使用 CMake 的一些经验。

先决条件
  • 您已经安装了编译器/IDE,它能够一次编译任何其他程序(直接没有 CMake)
  • 你例如可能有 IDE,但可能没有安装编译器或支持框架本身,如 Problems generating solution for VS 2017 with CMake 中所述或 How do I tell CMake to use Clang on Windows?
  • 您有最新的 CMake version
  • 您对希望 CMake 生成构建环境的驱动器具有访问权限
  • 您有一个干净的构建目录(因为 CMake 确实缓存了上次尝试的内容)例如作为源树的子目录

    Windows cmd.exe
    > rmdir /s /q VS2015
    > mkdir VS2015
    > cd VS2015

    Bash shell
    $ rm -rf MSYS
    $ mkdir MSYS
    $ cd MSYS

    并确保您的命令 shell 指向新创建的二进制输出目录。

  • 您可以/应该尝试的一般事情
  • CMake 是否能够找到并使用任何/您的默认编译器运行?不给发电机运行
    > cmake ..
    -- Building for: Visual Studio 14 2015
    ...

    如果正确确定要使用的生成器,那就完美了 - 就像这里 Visual Studio 14 2015
  • 实际上失败的原因是什么?

    在之前的构建输出目录中查看 CMakeFiles\CMakeError.log对于任何对您有意义的错误消息或尝试打开/编译在 CMakeFiles\[Version]\CompilerIdC 生成的测试项目| CompilerIdCXX直接从命令行(在错误日志中找到)。

  • CMake 找不到 Visual Studio
  • 尝试选择正确的 generator version :
    > cmake --help
    > cmake -G "Visual Studio 14 2015" ..
  • 如果这没有帮助,请尝试先设置 Visual Studio 环境变量(路径可能会有所不同):
    > "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
    > cmake ..

    或使用 Developer Command Prompt for VS2015 Windows 开始菜单中的快捷方式 All Programs/Visual Studio 2015/Visual Studio Tools (感谢 @Antwane 的提示)。

  • 背景:CMake 支持所有 Visual Studio 版本和风格(Express、Community、Professional、Premium、Test、Team、Enterprise、Ultimate 等)。为了确定编译器的位置,它结合了搜索注册表(例如在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir )、系统环境变量和 - 如果其他人都没有想出什么 - 简单地尝试调用编译器。

    CMake 找不到 GCC (MinGW/MSys)
  • 您启动 MSys bash shell 带 msys.bat并尝试直接拨打 gcc
    $ gcc
    gcc.exe: fatal error: no input files
    compilation terminated.

    在这里它确实找到了 gcc并提示我没有给它任何参数。

    所以以下应该工作:
    $ cmake -G "MSYS Makefiles" ..
    -- The CXX compiler identification is GNU 4.8.1
    ...
    $ make

    如果未找到 GCC,请拨打 export PATH=...添加您的编译器路径(请参阅 How to set PATH environment variable in CMake script? )并重试。
  • 如果它仍然不起作用,请尝试设置 CXX通过导出直接编译器路径(路径可能会有所不同)
    $ export CC=/c/MinGW/bin/gcc.exe
    $ export CXX=/c/MinGW/bin/g++.exe
    $ cmake -G "MinGW Makefiles" ..
    -- The CXX compiler identification is GNU 4.8.1
    ...
    $ mingw32-make

    更多详情请见How to specify new GCC path for CMake

    备注 :当使用“MinGW Makefiles”生成器时,你必须使用 mingw32-make与 MinGW 一起分发的程序
  • 还是不工作?这很奇怪。请确保编译器在那里并且它具有可执行权限(另请参见上面的前提条件章节)。

    否则 CMake 的最后一招是不要尝试任何编译器搜索本身并直接设置 CMake 的内部变量
    $ cmake -DCMAKE_C_COMPILER=/c/MinGW/bin/gcc.exe -DCMAKE_CXX_COMPILER=/c/MinGW/bin/g++.exe ..

    更多详情请见Cmake doesn't honour -D CMAKE_CXX_COMPILER=g++Cmake error setting compiler

    或者,这些变量也可以通过 cmake-gui.exe 设置在 Windows 上。见 Cmake cannot find compiler

  • 背景:与 Visual Studio 大致相同。 CMake 支持各种 GCC 风格。它搜索环境变量(CC、CXX 等)或只是尝试调用编译器。此外,它会检测任何前缀(当 cross-compiling 时)并尝试将其添加到 GNU 编译器工具链的所有 binutils( arranlibstripld 、 |104| 、 |104| , 和 nm )。

    关于c++ - CMakeLists.txt :30 (project): No CMAKE_C_COMPILER could be found 处的 CMake 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32801638/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com