11

我正在尝试使用 MinGW 在 Windows 7 上运行 CLion,但由于某种原因,CMake 无法编译简单的测试程序,但是当我创建一个简单的 hello world 文件时,当我直接调用编译器而不是 CMake 时,它​​编译得很好。

我已经尝试了几个版本的 MinGW,但它对错误没有影响。我什至卸载了我的 AV 以查看是否是问题所在,但再一次没有任何改变。

我的路径中有 MinGW 和 CMake。起初我认为这可能是 TEMP 文件夹的权限问题,但它们看起来都很好。我也是管理员帐户。

这是我在 CLion 中遇到的错误:

Error:The C compiler "C:/MinGW/bin/gcc.exe" is not able to compile a simple test program.
It fails with the following output:
Change Dir: C:/Users/Jim/.clion10/system/cmake/generated/4cb6a70c/4cb6a70c/__default__/CMakeFiles/CMakeTmp
Run Build Command:"C:/MinGW/bin/mingw32-make.exe" "cmTryCompileExec141319549/fast"
C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\cmTryCompileExec141319549.dir\build.make CMakeFiles/cmTryCompileExec141319549.dir/build
mingw32-make.exe[1]: Entering directory 'C:/Users/Jim/.clion10/system/cmake/generated/4cb6a70c/4cb6a70c/__default__/CMakeFiles/CMakeTmp'
"C:\Program Files (x86)\JetBrains\CLion 1.0\bin\cmake\bin\cmake.exe" -E cmake_progress_report C:\Users\Jim\.clion10\system\cmake\generated\4cb6a70c\4cb6a70c\__default__\CMakeFiles\CMakeTmp\CMakeFiles 1
CMakeFiles\cmTryCompileExec141319549.dir\build.make:56: recipe for target 'CMakeFiles/cmTryCompileExec141319549.dir/testCCompiler.c.obj' failed
process_begin: CreateProcess(C:\Users\Jim\AppData\Local\Temp\make68804-1.bat, C:\Users\Jim\AppData\Local\Temp\make68804-1.bat, ...) failed.
make (e=2): Het systeem kan het opgegeven bestand niet vinden.
mingw32-make.exe[1]: *** [CMakeFiles/cmTryCompileExec141319549.dir/testCCompiler.c.obj] Error 2
mingw32-make.exe[1]: Leaving directory 'C:/Users/Jim/.clion10/system/cmake/generated/4cb6a70c/4cb6a70c/__default__/CMakeFiles/CMakeTmp'
Makefile:117: recipe for target 'cmTryCompileExec141319549/fast' failed
mingw32-make.exe: *** [cmTryCompileExec141319549/fast] Error 2
CMake will not be able to correctly generate this project.

这是我尝试从 CMD 使用 CMake 时遇到的错误:在此处输入图像描述

4

2 回答 2

1

对于一个虚拟的 cmake 项目(带有简单cmake_minimum_required(VERSION 2.8)add_executable(helloWorld <your hello world program>). 的 CMakeLists.txt),我们已经确定编译器和 CLion 不是问题,所以它可能与 make 有关。是日志。

我的猜测是你的路径中有 msys。如果sh.exe在您的路径中,则已知会导致问题

作为一个安全的替代方案,您可以决定使用ninja作为 make 的替代方案(cmake实验性地支持它,但实际上它支持得很好)。在这里您可以找到预构建的软件包(实际上,它只是您必须放入路径中的一个可执行文件)。

CLion 中的 Ninja 集成应该可以正常工作

于 2015-04-27T11:21:03.767 回答
0

我有一个类似的问题。你在 CLion 之前安装了 MinGW 吗?

如果您只安装了带有 MinGW(基础)的 C 编译器,则 CLion 有可能正在测试一个不存在的 C++ 编译器。

您应该尝试从其安装管理器安装 MinGW C++ 编译器。或者您可以简单地删除 C:\MinGW 文件夹,然后再次启动安装程序,这次添加 C 和 C++ 编译器。如果它不起作用,请尝试重新安装 CLion。

这是一个对我有用的快速解决方案。

于 2017-03-16T00:17:28.423 回答