1
當我在不同的操作系統上進行開發時,由於libc版本的不同,我發現構建在一個Linux系統上的程序無法在另一個系統上運行。C/C++可以將所有動態庫構建到一個bin文件中嗎?
如何在c/C++中像golang那樣構建所有的共享庫?
包括libc和libcxx
當我在不同的操作系統上進行開發時,由於libc版本的不同,我發現構建在一個Linux系統上的程序無法在另一個系統上運行。C/C++可以將所有動態庫構建到一個bin文件中嗎?
如何在c/C++中像golang那樣構建所有的共享庫?
包括libc和libcxx
如果你想在多個Linux系統上運行,你真正需要的是使用的最古老的glibc從其中任何一個建。最簡單的方法就是從舊系統(如CentOS 5)下載虛擬機映像並在那裏建立。您不必擔心靜態鏈接,只是針對舊版本構建意味着您大多與新版本兼容。
我只想鏈接靜態libc等 –
cc -static等通常適用於我。 man cc瞭解更多關於靜態開關的細節。 –
你不能這樣做,因爲不同的平臺有不同的體系結構,並且還記得C只是源代碼可移植的,而不是像Java那樣的平臺獨立 – Anjaneyulu