我从这里使用 mingw:http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.2/32-bit/threads-posix/sjlj/x32-4.7。 2-release-posix-sjlj-rev2.7z/下载
我已经成功地使用 -static-libgcc -static-libstdc++ 静态链接
参数,但我找不到对 libstdc++-6.dll
和 libgcc_s_sjlj-1.dll
libwinpthread-1.dll
执行相同操作的命令。
最佳答案
如果您的工具链包含静态 winpthreads,请添加选项
-static
将拉入所有库的静态版本。
或者,您可以从工具链目录中删除 libwinpthread.dll.a 和 DLL 本身。这可能会弄乱与 libstdc++ 和 libgcc DLL 链接的程序,所以要小心。
第三个选项是使用 -Wl,-Bdynamic
和 -Wl,-Bstatic
来选择你想要链接的版本(这就是 - static
在调用 ld 时在内部执行)。一个例子:
gcc -o someexec someobject.o -Wl,-Bdynamic -lsomelibIwantshared -Wl,-Bstatic -lsomelibIwantstatic
如果您在添加 -v
的情况下运行链接命令,当您使用 -static-libgcc
和 时,您应该会看到这些选项出现在 ld/collect2 调用中>-static-libstdc++
.
关于c++ - 如何在mingw中进行libwinpthread-1.dll的静态链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13768515/