2012-08-29 115 views
5

Ubuntu 12.04上的DMD 2.60 ... 我想创建一个静态二进制文件,以便我可以在旧的环境中运行它。 dmd没有'-static'标志。 我试图通过“-static”标志的链接器“DMD -L-静......” - 得到错误信息如何编译静态二进制文件?

/usr/bin/ld: cannot find -lgcc_s 

编译C代码与“GCC -static ......”工作正常。 这是我想念的东西吗? 谢谢!

+0

你总是可以尝试编译D源代码,并且手动使用LD来链接...我想我从来没有尝试过它,但似乎值得一试。 – DejanLekic

回答

3

It doesn't currently work if you use dmd to link由于它如何将链接器标志传递给链接器。您需要使用-c构建所有内容来生成目标文件,然后将这些文件手动链接到gcc或ld。

我应该指出,虽然一般来说,静态连接glibc被认为是一个坏主意。它可能很好地工作,并在你的情况下是正确的解决方案,但它肯定有潜在的问题(我不记得细节)。所以,你可能不应该这样做,除非你真的需要。