我最近一直试图将MinGW用于我的开发目的,但是有一些问题。
由于某种原因,它似乎总是想与pthread链接。我尝试在C中编译一个简单的hello世界并得到一个错误
ld.exe:找不到-lpthread
显然它正在搜索pthread库而不是找到它。我从MinGW-get下载了库,正如预期的那样,编译和链接工作正常。
但是,在C中仅包含stdio.h的简单hello世界剥离可执行文件后,该文件仍然是46k大。在Cygwin上用gcc编译和剥离的相同文件就像9k,MSVC也是类似的。
所以它抱怨图书馆丢失了。提供图书馆解决问题并使其工作。但是在C中剥离的hello世界仍然是46k,而在cygwin上使用gcc则是9k。
结论是,MinGW出于某种原因正在使用pthread库。
但我无法找到一种方法来禁用MinGW想要在任何地方链接pthread。具有讽刺意味的是,我在谷歌上找到的所有内容都是人们无法使用pthread与MinGW合作。
有没有办法让MinGW不想与pthread链接?
重新安装SDL2以避免SDL文件和SDL2文件之间的二进制冲突将解决当前的问题。
要解决新问题,需要将SDL2分发文件(复制到MinGW的文件)复制并从中复制SDL2.dll [可分发的DLL] [1] ---将文件拖到调试和/或发布上.exe文件所在的文件夹。(。exe + dll - >对吗?)将dll移动到exes。构建/运行它应该工作的程序!您应该看到欢迎消息! https://www.caveofprogramming.com/c-for-complete-beginners/setting-up-sdl-windows.html