5

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

/usr/bin/ld: cannot find -lgcc_s

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

4

1 回答 1

3

如果您使用 dmd 进行链接,它目前不起作用,因为它将链接器标志传递给链接器。您需要构建所有内容-c以生成目标文件,然后使用 gcc 或 ld 手动链接这些文件。

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

于 2012-08-30T17:21:53.933 回答