执行cmake ..时遇CMAKE_Project_COMPILER未设置及nmake找不到错误
问题解决方法
错误原因分析
- Project命令语法错误:
project(CXX Project)写法颠倒,CMake中project命令的正确格式是project(项目名 支持的语言),参数顺序错误导致CMake无法正确识别项目配置,进而引发编译器未设置的报错。 - CMake生成器不匹配:你配置了MinGW编译器,但CMake默认使用Visual Studio相关生成器(nmake),而系统中未安装或未配置nmake的环境变量,因此提示找不到指定文件。
修复步骤
1. 修正CMakeLists.txt中的project命令
将原代码里的:
project(CXX Project)
修改为:
project(Project CXX)
这样CMake能正确识别项目名称为Project,并启用C++语言支持。
2. 指定MinGW生成器运行CMake
执行cmake命令时,明确指定使用MinGW生成器,命令如下:
cmake .. -G "MinGW Makefiles"
如果MinGW的make工具不在系统环境变量中,可额外指定路径:
cmake .. -G "MinGW Makefiles" -DCMAKE_MAKE_PROGRAM="C:/mingw64/bin/mingw32-make.exe"
3. 修复后的完整CMakeLists.txt
set(CMAKE_CXX_COMPILER "C:/mingw64/bin/g++") set(CMAKE_C_COMPILER "C:/mingw64/bin/gcc") project(Project CXX) add_subdirectory(glfw/) add_executable(${PROJECT_NAME} Main.cpp) target_include_directories(${PROJECT_NAME} PUBLIC glfw) target_link_libraries(${PROJECT_NAME} PUBLIC glfw)
额外提示
- 确保MinGW的
bin目录(C:/mingw64/bin)已添加到系统环境变量,方便CMake直接找到编译器和make工具。 - 若问题依旧,删除build目录下所有文件后重新执行cmake命令,避免旧缓存配置干扰。
内容的提问来源于stack exchange,提问作者David Kevin
相关产品推荐
相关产品推荐

