2012-08-29 69 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被認爲是一個壞主意。它可能很好地工作,並在你的情況下是正確的解決方案,但它肯定有潛在的問題(我不記得細節)。所以,你可能不應該這樣做,除非你真的需要。

相關問題