繁体   English   中英

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

[英]CMake/MinGW unknown compilers, gcc.exe broken

我正在尝试在我的 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.

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

set CMAKE_C_COMPILER=%C:\mingw\bin\gcc%
set CMAKE_CXX_COMPILER=%C:\mingw\bin\g++%

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

是的,问题是 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)

第二种方式:

在终端或 cmd 中调用 cmake 时:

cmake -DCMAKE_C_COMPILER="C:\path\to\gcc.exe" -DCMAKE_CXX_COMPILER="C:\path\to\g++.exe"

第三种方式:

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

;C:\path_to_MinGW_or_Cygwin\bin

我有类似的问题。 我的设置是:VSCode (Windows 10) + GCC 9.2xx + CMake 3.18.2 环境变量已经设置为指向 GCC 和 CMake。

这有效: https ://stackoverflow.com/a/4101496/2865353 需要清理 CMakeCache.txt 和 CMakeFiles 目录。

它修复的错误是:

-- Building for: NMake Makefiles
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:3 (project):
  The CMAKE_C_COMPILER:
    cl
  is not a full path and was not found in the PATH.

CMake Error at CMakeLists.txt:3 (project):
The CMAKE_CXX_COMPILER:
    cl
is not a full path and was not found in the PATH.

我正在尝试在我的 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.

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

set CMAKE_C_COMPILER=%C:\mingw\bin\gcc%
set CMAKE_CXX_COMPILER=%C:\mingw\bin\g++%

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM