CMAKE_C_COMPILER未设置,启用语言后。

21

我在Windows上安装了CMake,除此之外还安装了gcc和g++编译器。我将变量添加到了路径中,但仍然遇到以下错误,请帮忙解决一下。

输入图像描述

-- Building for: NMake Makefiles
CMake Error at CMakeLists.txt:6 (project):
  Running

   'nmake' '-?'

  failed with:

   The system cannot find the file specified


CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "C:/Users/DEANHOS/Desktop/peer/cmake tutorial/codeAndTech/sample/CMakeFiles/CMakeOutput.log".


1
您正在尝试为NMake生成器配置项目,但是您的计算机上无法访问可执行文件“nmake”。这就是第一个错误消息的原因。 - Tsyvarev
谢谢@Tsyvarev,你是对的。我像这样定义了生成器cmake -G "MinGW Makefiles" .,第一个错误消失了。非常感谢。 - Anas Hosami
在我的情况下,是因为尝试在配置(cmake ..)之前构建(cmake --build ..)。任何后续的配置命令都会出现上述错误。删除构建目录中的所有内容并重新运行cmake ..即可解决问题! - Jonathan Levin
1个回答

18

这些变量需要作为命令行参数传递:

$ cmake -DCMAKE_CXX_COMPILER=/pathto/g++ -DCMAKE_C_COMPILER=/pathto/gcc /pathto/source

或在 CMakeLists.txt 文件中的 project() 行之前设置:

set( CMAKE_CXX_COMPILER "/pathto/g++" )
set( CMAKE_C_COMPILER "/pathto/gcc" )

project(mytest)
...

或者可以使用-C <toolchain>命令引入

# mygcc.cmake 
# toolchain file
set( CMAKE_CXX_COMPILER "/pathto/g++" )
set( CMAKE_C_COMPILER "/pathto/gcc" )
$ cmake -C /pathto/mygcc.cmake /pathto/source

1
pathto是一个占位符吗? 我将编译器设置为以下内容,这样可以吗? set( CMAKE_CXX_COMPILER "C:/MinGW/bin/g++" ) set( CMAKE_C_COMPILER "C:/MinGW/bin/gcc" ) - axelrotter
2
你说的pathto/source是什么意思? - Gaurav Pandey

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