2013-09-26 35 views
0

我知道在Solaris 10中Sun現在Oracle不提供C庫的靜態版本,即libC.a 但我檢查使用Sun Studio也無法做到這一點,我是就像Visual Studio提供C運行時庫一樣,Compiler提供了C庫。使用SunStudio在Solaris上靜態鏈接C庫

因此,在Solaris上C庫僅由系統提供,並且無法在Solaris 10上獲得與libC.a兼容的靜態版本? 謝謝

+0

小心 - 'libC'是C++標準庫,'libc'是C標準庫。兩者都與Solaris上的操作系統配合使用,而不是Studio編譯器。 – alanc

+0

爲什麼你想要一個*靜態*版本的系統庫,特別是libc?如果您使用靜態庫,那麼您將永久焊接到該特定版本,並且您的維護成本將會增加。 –

回答

1

不知道你能找到一個。這是「按設計」 - 當stdlib API穩定時,內部版本會在操作系統版本之間變化,所以它們強制每個人動態鏈接以避免破壞。

理論上使用動態版本使您的可執行文件在不同的Solaris發行版中可移植(但不能保證)。

如果你真的想擁有一個完全自包含的可執行文件,那麼你可能應該使用GCC和它自己的stdlib。

+0

gcc在Solaris上沒有自己的stdlib。 – jlliagre

+0

錯......我其實是指glibc。 –

+1

這是我推斷你的意思。沒有用於Solaris的glibc端口。此平臺上的gcc使用捆綁的libc,由於您陳述的原因,該庫僅作爲共享庫提供。您的第三段描述了一些無法完成的事情,特別是從Solaris 10開始。 – jlliagre