无法指定与C进行编译(Unable to specify the compiler with CMa

2019-06-18 15:03发布

我有这个问题CMakeLists.txt文件:

cmake_minimum_required(VERSION 2.6)

SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc)
SET(CMAKE_CXX_COMPILER C:/MinGW/bin/g++)

project(cmake_test)

add_executable(a.exe test.cpp)

调用通过CMake: cmake -G "MinGW Makefiles"时,出现以下的输出:

c:\Users\pietro.mele\projects\tests\buildSystem_test\cmake_test>cmake -G "MinGW Makefiles" .
-- The C compiler identification is GNU 4.6.1
-- The CXX compiler identification is GNU 4.6.1
-- Check for working C compiler: C:/MinGW/bin/gcc
CMake Error: your C compiler: "C:/MinGW/bin/gcc" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Check for working C compiler: C:/MinGW/bin/gcc -- broken
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:52 (MESSAGE):
  The C compiler "C:/MinGW/bin/gcc" is not able to compile a simple test
  program.

CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:10 (project)

CMake Error: your C compiler: "C:/MinGW/bin/gcc" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "C:/MinGW/bin/g++" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
-- Configuring incomplete, errors occurred!

然而, gcc编译器是在C:/MinGW/bin/和它的作品。

任何的想法?

平台:

  • Windows 7的
  • 的MinGW / GCC 4.6

Answer 1:

不要试图设置编译器中CMakeLists.txt文件。

请参阅有关如何使用不同的编译器的CMake的常见问题:

https://gitlab.kitware.com/cmake/community/wikis/FAQ#how-do-i-use-a-different-compiler

(请注意,您正在尝试方法#3和常见问题解答说,“(忌)” ...)

我们建议避免“在CMakeLists”技术,因为它存在的问题时使用了不同的编译器的第一配置,然后CMakeLists文件所做的修改尝试设置不同的编译器......而由于CMakeLists文件的意图应该是对多编译工作,根据运行CMake的开发者的偏好。

最好的方法是设置环境变量CCCXX调用CMake的在一个构造树的第一次之前。

CMake的检测什么编译器使用后,将它们保存在CMakeCache.txt文件,以便它仍然可以产生正确的编译系统,即使这些变量从环境中消失......

如果您需要更改的编译器,你需要打开一个新的编译树。



Answer 2:

我有类似的问题,因为彼得大教堂,

我在窗口10并使用“Git的打击”。 我试图执行>>“MinGW的Makefile文件”的cmake -G,但我得到了同样的错误彼得。

于是,我试着>>的cmake -G“MSYS Makefile文件”,但意识到,我需要正确的设置我的环境。

确保设置为C的路径:\ MinGW的\ MSYS \ 1.0 \ bin并检查是否已gcc.exe那里。 如果gcc.exe是不存在的,那么你必须运行C:/MinGW/bin/mingw-get.exe和MSYS安装gcc。

之后,它工作正常,我



Answer 3:

使用FILEPATH选项可能的工作:

set(CMAKE_CXX_COMPILER:FILEPATH C:/MinGW/bin/gcc.exe)


Answer 4:

我遇到过同样的问题。 而在我的情况下,修复是相当简单的。 诀窍是简单地将名为“.exe”添加到你的编译器的路径。 所以,相反的:

SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc)

它应该是

SET(CMAKE_C_COMPILER C:/MinGW/bin/gcc.exe)

这同样适用于G ++。



文章来源: Unable to specify the compiler with CMake
标签: gcc cmake mingw