如何编译静态二进制文件?

时间:2012-08-29 17:25:29

标签: d

Ubuntu 12.04上的DMD 2.60 ... 我想创建一个静态二进制文件,以便我可以在一个古老的环境中运行它。 dmd没有'-static'标志。 我尝试使用“dmd -L-static ...”将'-static'标志传递给链接器 - 获取错误消息

/usr/bin/ld: cannot find -lgcc_s

使用“gcc -static ...”编译C代码可以正常工作。 这是我想念的吗? 谢谢!

1 个答案:

答案 0 :(得分:3)

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

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