cmake msys2 mingw无法编译简单的测试程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmake msys2 mingw无法编译简单的测试程序相关的知识,希望对你有一定的参考价值。

昨天,我能够毫无问题地配置和编译我的项目。现在我做了一些系统更新,编译器无法通过检查。我在那儿呆了几个小时-

我正在运行装有当前MSYS2的Windows 10。软件包是最新的。当我使用--debug-trycompile检查时,我看到已创建了testCCompiler.c文件,并且还有一个可执行文件,我可以毫无问题地运行它。因此,我不知道究竟是什么导致了此错误。

当我转到目录并执行完全相同的命令时,它也正在工作。

[cmake] Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe
[cmake] Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe -- broken
[cmake] CMake Error at C:/msys64/mingw64/share/cmake-3.15/Modules/CMakeTestCCompiler.cmake:60 (message):
[cmake]   The C compiler
[cmake] 
[cmake]     "C:/msys64/mingw64/bin/gcc.exe"
[cmake] 
[cmake]   is not able to compile a simple test program.
[cmake] 
[cmake]   It fails with the following output:
[cmake] 
[cmake]     Change Dir: C:/Users/bscb/Documents/code/MachineLearning/build/CMakeFiles/CMakeTmp
[cmake]     
[cmake]     Run Build Command(s):C:/Ninja/ninja.exe cmTC_aef7d && [1/2] Building C object CMakeFiles/cmTC_aef7d.dir/testCCompiler.c.obj
[cmake]     [2/2] Linking C executable cmTC_aef7d.exe
[cmake]     FAILED: cmTC_aef7d.exe 
[cmake]     cmd.exe /C "cd . && C:\msys64\mingw64\bin\gcc.exe    CMakeFiles/cmTC_aef7d.dir/testCCompiler.c.obj  -o cmTC_aef7d.exe -Wl,--major-image-version,0,--minor-image-version,0  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
[cmake]     Das System kann den angegebenen Pfad nicht finden.
[cmake]     ninja: build stopped: subcommand failed.
答案

解决方案是由conda创建的cmd.exe初始化脚本链接到不存在的批处理文件。

以上是关于cmake msys2 mingw无法编译简单的测试程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 cmake 和 mingw-w64 错误编译测试程序

在 mingw-w64/msys2 中编​​译的应用程序,“应用程序无法正确启动(0xc00007b”

使用 PyInstaller 在 MSYS2/MinGW 中编译 GTK 软件的问题

msys2+minGW方案编译ffmpeg的最佳实践

Msys2+mingw-w64 编译VS2013使用的ffmpeg静态库注意事项

WINDOWS使用msys2编译ffmpeg(编译成功,无法使用)