繁体   English   中英

“'MinGW/bin/gcc.exe' 无法编译简单的测试程序。”

[英]“'MinGW/bin/gcc.exe' is not able to compile a simple test program.”

我目前正在学习 CMake。 现在我正在尝试配置 CMake 来构建一个示例程序来学习基础知识,但我无法超越看起来应该非常容易的事情。 CMake 似乎与我的 gcc 和 g++ 编译器不一致。 我已经通过 CodeBlocks 安装了它们,它们在那里工作得很好。 但是,当我 go 在 CMake GUI 中配置项目时,我得到以下信息:

The C compiler identification is unknown
The CXX compiler identification is unknown
Check for working C compiler: C:/CodeBlocks/MinGW/bin/gcc.exe
Check for working C compiler: C:/CodeBlocks/MinGW/bin/gcc.exe -- broken
CMake Error at C:/Program Files/CMake/share/cmake-3.15/Modules/CMakeTestCCompiler.cmake:60 (message):
  The C compiler

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

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: C:/Users/Bank/Desktop/Introductions-to-Libraries-with-CMake/Build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):C:/MinGW/bin/mingw32-make.exe cmTC_52744/fast && C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\cmTC_52744.dir\build.make CMakeFiles/cmTC_52744.dir/build

    mingw32-make.exe[1]: Entering directory 'C:/Users/Bank/Desktop/Introductions-to-Libraries-with-CMake/Build/CMakeFiles/CMakeTmp'

    Building C object CMakeFiles/cmTC_52744.dir/testCCompiler.c.obj

    C:\CodeBlocks\MinGW\bin\gcc.exe    -o CMakeFiles\cmTC_52744.dir\testCCompiler.c.obj   -c C:\Users\Bank\Desktop\Introductions-to-Libraries-with-CMake\Build\CMakeFiles\CMakeTmp\testCCompiler.c

    CMakeFiles\cmTC_52744.dir\build.make:64: recipe for target 'CMakeFiles/cmTC_52744.dir/testCCompiler.c.obj' failed

    mingw32-make.exe[1]: *** [CMakeFiles/cmTC_52744.dir/testCCompiler.c.obj] Error 1

    mingw32-make.exe[1]: Leaving directory 'C:/Users/Bank/Desktop/Introductions-to-Libraries-with-CMake/Build/CMakeFiles/CMakeTmp'

    Makefile:120: recipe for target 'cmTC_52744/fast' failed

    mingw32-make.exe: *** [cmTC_52744/fast] Error 2

    
    

  

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


Configuring incomplete, errors occurred!
See also "C:/Users/Bank/Desktop/Introductions-to-Libraries-with-CMake/Build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/Bank/Desktop/Introductions-to-Libraries-with-CMake/Build/CMakeFiles/CMakeError.log".

这是我的 CMakeLists 文件:

cmake_minimum_required(VERSION 3.0.0)

set(CMAKE_C_COMPILER "C:/CodeBlocks/MinGW/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "C:/CodeBlocks/MinGW/bin/g++.exe")

project("Foo")

add_subdirectory("foo")

如果有帮助,我的环境变量中的路径变量如下所示:

C:\Program Files (x86)\Common Files\Oracle\Java\javapath;c:\windows\system32;c:\windows;c:\windows\system32\wbem;c:\windows\system32\windowspowershell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git;C:\Program Files\Git\cmd;C:\Users\Bank\AppData\Local\Android\Sdk\tools;C:\Users\Bank\AppData\Local\Android\Sdk\platform-tools;C:\Users\Bank\Desktop\sfAnd\android-ndk-r20;C:\Program Files\CMake\bin;C:\Program Files\Java\jdk1.8.0_231;C:\MinGW\msys\1.0\bin;C:\Program Files\Java\jdk1.8.0_231\jre;C:\Gradle\gradle-6.0-all\gradle-6.0\bin;C:\Gradle\gradle-6.0-all\gradle-6.0;C:\Program Files (x86)\GnuWin32\bin;I:\Storage\Programs\apache-ant-1.9.14-bin\apache-ant-1.9.14\bin;C:\Python27;C:\ninja-win;C:\Program Files\dotnet\;C:\CodeBlocks\MinGW

问题可能是什么?

C:\CodeBlocks\MinGW 可能不包含 gcc 或 g++ 的 DLL。 您应该将 C:\CodeBlocks\MinGW\bin 和/或 C:\CodeBlocks\MinGW\lib 添加到您的路径中,具体取决于 MinGW 的安装方式。 我使用 MSys2 并使用为 32 位和 64 位工具提供的环境。 我试图摆脱 MinGW 的预打包版本以避免在我自己的计算机上造成混淆(我注意到你的路径中有 msys 1.0)。

我终于明白了,感谢这篇文章:c++ 的Cmake build error

我读过一些帖子说“[your_path]\MinGW”需要在您的 PATH 变量中,但它实际上是“[your_path]\MinGW\bin”。 我仍然不确定为什么在 CMakeLists 中添加以下内容不起作用:

set(CMAKE_C_COMPILER "C:/CodeBlocks/MinGW/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "C:/CodeBlocks/MinGW/bin/g++.exe")

但那是另一次了。 谢谢您的帮助。

暂无
暂无

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

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