CMake/MinGW 未知编译器,gcc.exe 损坏

ziz*_*ard 5 c++ mingw cmake

我正在尝试在我的 windows 桌面上安装一个名为 NUPACK 的软件套件,用于设计核酸反应途径。http://www.nupack.org/

这个软件需要安装CMake,据我了解,CMake本身没有编译器,需要我们单独安装编译器。因此,我下载了 MinGW 以用作 C++ 编译器。在运行之前,我已经设置了 CMake 和 MinGW 的 bin 的环境变量。我正在通过命令提示符运行 CMake(版本 3.11.1),但我一直遇到以下问题:

C:\Users\Nicholas\Documents\nupack\build>Cmake -DCMAKE_INSTALL_PREFIX=NUPACKINSTALL -G "MinGW Makefiles" ..
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- Check for working C compiler: C:/MinGW/bin/gcc.exe
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- broken
CMake Error at C:/Program Files/CMake/share/cmake- 
3.11/Modules/CMakeTestCCompiler.cmake:52 (message):
  The C compiler

    "C:/MinGW/bin/gcc.exe"

  is not able to compile a simple test program.
Run Code Online (Sandbox Code Playgroud)

我猜 CMake 无法以某种方式识别我的 MinGW gcc 和 gcc++ 编译器。我接下来尝试了以下操作,但出现了同样的错误。

set CMAKE_C_COMPILER=%C:\mingw\bin\gcc%
set CMAKE_CXX_COMPILER=%C:\mingw\bin\g++%
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过同样的问题?这可以通过使用 MinGW64 解决吗?我使用的是 Windows 10,之前我尝试使用 Visual Studio 2017 的编译器,但它也有一些问题。

Ugn*_*kas 5

是的,问题是 CMake 找不到 GCC 编译器。在确保安装了 g++ 和 gcc 之前。它可以是 MinGW64 或 Cygwin。

至少有三种方式可以链接 GCC 编译器。

第一种方式:

将编译器设置为CMakeLists.txt

set(CMAKE_C_COMPILER C:\path\to\gcc.exe)
set(CMAKE_CXX_COMPILER C:\path\to\g++.exe)
Run Code Online (Sandbox Code Playgroud)

方式二:

在终端或 cmd 中调用 cmake 时:

cmake -DCMAKE_C_COMPILER="C:\path\to\gcc.exe" -DCMAKE_CXX_COMPILER="C:\path\to\g++.exe"
Run Code Online (Sandbox Code Playgroud)

第三种方式:

设置为环境变量:转到 Windows“环境变量”并添加PATH

;C:\path_to_MinGW_or_Cygwin\bin
Run Code Online (Sandbox Code Playgroud)