
我在我的 Linux (Ubuntu) 機器上建置並安裝了新版本,gcc
並將其安裝在/opt/gcc-10.2.0
.
然後我曾經update-alternatives
將其設為預設gcc
/ g++
。
然而,它可以工作,用新版本建立的程式gcc
仍然連結到舊版本libstdc++
,/usr/lib/x86_64-linux-gnu
而不是 中找到的版本/opt/gcc-10.2.0/lib64
。
如果系統libstdc++
使用 C++11 之前的 ABI,則會出現問題,因為這會導致應用程式在啟動期間崩潰。
有沒有辦法安裝較新版本的 GCC 並使其成為用戶的“預設編譯器”,並確保用它構建的程式將連結到與該編譯器捆綁的libstc++
(和libgcc
)?
我問這個問題是因為我想建立一個使用最新 GCC 版本的建置伺服器。
答案1
- 這實際上很好,因為您編譯的程式變得更加可移植。
- 您可以嘗試新增
-L/opt/gcc-10.2.0/lib64
到您的編譯標誌。 - 你可以
sudo mkdir /usr/lib64/save; sudo mv -iv /usr/lib64/libstdc++* /usr/lib64/save
- 不建議這樣做。