我从这里使用 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/download
我已经成功地静态链接libstdc++-6.dll
and libgcc_s_sjlj-1.dll
通过使用-static-libgcc -static-libstdc++
参数,但我找不到执行相同操作的命令libwinpthread-1.dll
.
如果您的工具链包含静态 winpthreads,请添加选项
-static
将引入所有可能的库的静态版本。
或者,您可以从工具链目录中删除 libwinpthread.dll.a 和 DLL 本身。不过,这可能会弄乱与 libstdc++ 和 libgcc DLL 链接的程序,所以要小心。
第三种选择是使用-Wl,-Bdynamic
and -Wl,-Bstatic
选择您想要链接的版本(即-static
当 ld 被调用时内部执行)。一个例子:
gcc -o someexec someobject.o -Wl,-Bdynamic -lsomelibIwantshared -Wl,-Bstatic -lsomelibIwantstatic
如果您运行链接命令-v
添加,当您使用时,您应该会看到这些选项出现在 ld/collect2 调用中-static-libgcc
and -static-libstdc++
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)