You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows环境下CMake提示C/C++编译器未识别问题求助

解决CMake找不到C/C++编译器的问题

刚接触CMake就碰到这个报错确实挺闹心的,结合你已经安装了Visual Studio 2015/2017和Windows 8.1 SDK的情况,给你几个针对性的解决思路:

  • 用VS开发者命令提示符运行CMake
    普通命令行窗口可能没加载Visual Studio的编译器环境变量,导致CMake找不到cl.exe。你可以打开对应版本的VS开发者命令提示符(比如“Visual Studio 2017 x64 开发者命令提示符”),切换到项目目录后再执行CMake命令,这样CMake能自动识别到VS的编译器工具链。

  • 检查VS是否安装了C/C++开发组件
    虽然你装了VS,但默认安装可能没勾选C相关工作负载。打开VS的安装程序,找到对应的VS版本,确认勾选了**“使用C的桌面开发”**组件——这个组件包含了CMake需要的C/C++编译器、链接器等核心工具。

  • 手动指定编译器路径(备选方案)
    如果自动识别失败,可以在CMake命令里手动指定C和C++编译器的路径,示例命令如下(根据你的VS安装路径调整):

    cmake -G "Visual Studio 15 2017 Win64" ^
          -DCMAKE_C_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe" ^
          -DCMAKE_CXX_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe" ^
          ..
    

    要是用的是VS2015,路径大概是C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x64/cl.exe

  • 强制指定Windows SDK版本
    CMake自动选择了Windows 10.0.15063 SDK,但你装的是Win8.1 SDK,可以尝试强制指定SDK版本:

    • 命令行添加参数:-DCMAKE_SYSTEM_VERSION=8.1
    • 或者在CMakeLists.txt开头添加:set(CMAKE_SYSTEM_VERSION 8.1)

先试试前两个方法,这两个解决了大部分类似的问题,如果还是不行再尝试后面的方案。

内容的提问来源于stack exchange,提问作者Vignes

火山引擎 最新活动