的安裝新構建機器之後,我發現它來與C++標準庫鏈接使用較早版本的libstdC++
-rw-r--r-- 1 root root 1019216 2009-01-02 12:15 libstdc++.so.6.0.10
我們的許多目標機器的6.0.10,但是,仍然使用舊版本的libstdC++,例如:
-rwxr-xr-x 1 root root 985888 Aug 19 21:14 libstdc++.so.6.0.8
顯然,ABI在最後兩0.0.1的改變,如試圖在
/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
運行程序結果
我試着明確安裝一箇舊版本的gcc,但沒有幫助。 升級目標機器超出了我的控制範圍,所以不是一個選項。讓我的構建能夠在具有較舊libstdC++的機器上工作的最佳方式是什麼?
我在apt-cache中搜索了較舊的libstdC++版本進行安裝,但顯然沒有舊版本的6可用?
你的意思是我們必須安裝一箇舊版本的g ++嗎? – 2011-07-08 03:49:51
@Peter是的,拿G ++鏈接到舊版本的libstdC++的舊版本。所以 – Jan 2011-07-08 11:50:44
我覺得這是很蹩腳的,爲了使用C++庫的舊版本,你不得不忍受這可能有缺陷,編譯器和失蹤優化 - 尤其是因爲其他方式輪(使用舊的編譯器,一個新版本的庫)似乎只是一個設定'LD_LIBRARY_PATH'的問題。 – 2013-09-25 12:42:02