MinGW,始终与pthreads

时间:2016-08-28 17:12:07

标签: c windows pthreads mingw ld

我最近一直试图将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。具有讽刺意味的是,我在Google上找到的所有内容都是人们无法使用pthread与MinGW合作。

有没有办法让MinGW 想要与pthread链接?

2 个答案:

答案 0 :(得分:0)

重新安装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

答案 1 :(得分:0)

在Windows上安装MinGW-W64时,有几种可能性。 我敢打赌,您为posix线程而不是win32安装了它。 再次运行安装程序,并使用新创建的目录中的编译器。

MinGW Setup Screen