
gcc
Linux (Ubuntu) マシンにの新しいバージョンをビルドしてインストールし、 にインストールしました/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 を使用している場合、起動時にアプリケーションがクラッシュするため、これは問題になります。
libstc++
GCC の新しいバージョンをインストールして、それをユーザーの「デフォルト コンパイラ」にし、それを使用してビルドされたプログラムがそのコンパイラにバンドルされている(および)にリンクするようにする方法はlibgcc
ありますか?
最新の GCC バージョンを使用するビルド サーバーを作成したいので、この質問をします。
答え1
- これは、コンパイルされたプログラムの移植性が向上するため、実際には良いことです。
-L/opt/gcc-10.2.0/lib64
コンパイルフラグを追加してみるのもよいでしょう。- 可能です
sudo mkdir /usr/lib64/save; sudo mv -iv /usr/lib64/libstdc++* /usr/lib64/save
が、これはお勧めできません。