2017-03-28 138 views
0

我已經在VM Ubuntu 14.04上構建了一個C++應用程序,爲此我安裝了g ++編譯器6.2.0以支持C++ 14功能。當我試圖在新的乾淨的VM 16.04上運行它時,默認情況下g ++ 5.4.0錯誤/usr/lib/x86_64-linux-gnu/libstdc++.so.6:未找到'GLIBCXX_3.4.22'版本彈出。
我注意到已經安裝了更新後的編譯庫libstdC++。so.6.0.22的虛擬機。在乾淨的虛擬機,我想避免更新編譯器,所以我試圖只安裝最新的libstdC++ 6軟件包。但是,安裝的庫是libstdC++。so.6.0.21,所以問題依然存在。我如何特別安裝libstdC++。so.6.0.22版本?Version'GLIBCXX_3.4.22'找不到

+0

鏈接的一切,除了libc中。 –

回答

1

您可以嘗試使用pinning以確保只將所需的軟件包更新爲更新的版本。

或者,可以簡單地用克++ 5.4編譯程序,因爲根據this page,該編譯器已經支持所有的C++ 14,唯一的區別是,克++ - 6個默認爲-std = C++ 14 ,而使用g ++ - 5則必須明確設置語言標準。

3

您需要的libstdC++ 6升級到最新版本,這樣

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update 
sudo apt-get install gcc-4.9 
sudo apt-get upgrade libstdc++6 

後,如果您得到GLIBCXX所需的版本是這樣,您可以檢查:靜態

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX