CMake:配置过程中出错,项目文件可能无效 Visual Studio 2017

7

我目前正在尝试在CMake 3.10.0中编译一个项目,但它一直会出现上述错误框和以下内容。

    The C compiler identification is unknown
    The CXX compiler identification is unknown
    CMake Error at CMakeLists.txt:2 (project):
        No CMAKE_C_COMPILER could be found.



    CMake Error at CMakeLists.txt:2 (project):
        No CMAKE_CXX_COMPILER could be found.



    Configuring incomplete, errors occurred!
    See also "C:/build/CMakeFiles/CMakeOutput.log".
    See also "C:/build/CMakeFiles/CMakeError.log".

我目前正在运行 Microsoft Visual Studio 15 2017,在配置它时,我使用的是 x64。

9个回答

9

我曾经在使用VS 2015时遇到了同样的问题,但是在安装了VS 2017之后,问题得到了解决。我认为你应该检查修复一下你的Visual Studio 2017,然后再试一试。

如果CMake不允许你使用新的VS进行配置,在文件选项卡上清除使用“删除缓存”并尝试重新配置。


4
在CMake 3.14中,“删除缓存”位于“文件”选项卡下。 - takanuva15

4
当你安装Visual Studio 2017时,你是否安装了Visual C++编译器?默认情况下未启用。请前往添加或删除程序并尝试修复/修改以确保包括Visual C++。
这可能听起来像一个愚蠢的建议,但如果你刚安装了VS 2017,请确保你能够编译一个示例C++解决方案。是的,你会惊讶于我见过的那么多人遇到这个错误,只是因为他们没有意识到他们的编译器没有安装。
我的第三个建议是尝试打开x86或x64本地工具命令提示符,然后再次尝试运行你的CMake构建。问题,如你所见哈哈,是它找不到你的C编译器。运行这些命令提示符将确保设置正确的环境变量。如果失败,你的C编译器丢失,需要重新安装VS2017。如果这个方法有效,那么说明你的环境PATH存在问题。

@shaddles 嗯...有趣。我记得几年前我的一个同事也遇到了同样的问题,但我不记得他/我是如何解决的。还有一个愚蠢的问题要问你。CMake没有安装在单独的驱动器上吧?如果不是,请尝试完全卸载CMake并使用3.6.x版本-64位安装。安装时,请确保为所有用户安装(以便将其添加到系统PATH)。 - Chris
已下载并安装了3.6.x,但它不允许我与当前版本的Visual Studio 2017进行配置。 - shaddles
@shaddles 糟糕,那是我的错误。我想说的是3.7.2版本,那是引入2017的版本。 - Chris
我重置了我的笔记本电脑,现在CMake能够找到编译器,但是OpenSG出现了新问题,我会在另一个线程中提出。谢谢。 - shaddles
啊..老派的“你试过关掉再重新打开吗?” - Chris
显示剩余3条评论

3
第一步,点击“文件”,选择“删除缓存”;第二步,点击“配置”,选择“VS15 2017”,然后点击“完成”。enter image description here

enter image description here enter image description here


0
为了解决这个问题,我刚刚下载了最新版本的 opencvopencv_contrib 代码库(都在同一个名为“3.4”的分支上)。

0

请确保您正确命名了CMakeLists.txt文件。我曾经因为在list单词末尾遗漏了一个's'而出现了相同的错误,但是当我添加了这个's'后,它就正常工作了。


0
在我的情况下,我没有在配置面板中选择正确的Visual Studio版本。一旦我这样做,一切就正常工作了。

0
在我的情况下,当我想使用cmake从源代码构建librealsense时,出现了这个错误的另一个版本。在我的情况下,愚蠢的错误是在librealsense E:\librealsense-2.49.0\src中提供源代码路径,而我应该只提供E:\librealsense-2.49.0。这对我起作用了。

0

注意:这可能太明显和肤浅了,甚至不值得发布,但是由于@N.S的答案让我想尝试一下,它起作用了...

仅适用于MacOS(使用13.1):

  • 问题:长时间未使用过时导致CMake版本过时,无法修复。
  • 解决方案:下载最新的CMake,替换过时的CMake。工作正常。

Xcode 14.2


0
除了检查我是否可以编译C++程序并重新检查我的Visual Studio组件,将我的Windows SDK更新到新版本之外,我还安装了另一个版本的Cmake,并且它可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接