2016-11-25 39 views
1

當我在不同的操作系統上進行開發時,由於libc版本的不同,我發現構建在一個Linux系統上的程序無法在另一個系統上運行。C/C++可以將所有動態庫構建到一個bin文件中嗎?

如何在c/C++中像golang那樣構建所有的共享庫?

包括libc和libcxx

+0

我只想鏈接靜態libc等 –

+1

cc -static等通常適用於我。 man cc瞭解更多關於靜態開關的細節。 –

+1

你不能這樣做,因爲不同的平臺有不同的體系結構,並且還記得C只是源代碼可移植的,而不是像Java那樣的平臺獨立 – Anjaneyulu

回答

2

如果你想在多個Linux系統上運行,你真正需要的是使用的最古老的glibc從其中任何一個建。最簡單的方法就是從舊系統(如CentOS 5)下載虛擬機​​映像並在那裏建立。您不必擔心靜態鏈接,只是針對舊版本構建意味着您大多與新版本兼容。

相關問題