web-dev-qa-db-ja.com

バージョン `GLIBCXX_3.4.22 'が見つかりません

C++ 14機能をサポートするために、g ++コンパイラー6.2.0をインストールしたVM Ubuntu 16.04でC++アプリをビルドしました。デフォルトのg ++​​ 5.4.0を使用する新しいクリーンVM 16.04で実行しようとすると、エラー/ usr/lib/x86_64-linux-gnu/libstdc ++。so.6:バージョン `GLIBCXX_3。 4.22 'not foundポップアップします。
VMに、更新されたコンパイラライブラリlibstdc ++。so.6.0.22がインストールされていることに気付きました。クリーンなVMでは、コンパイラの更新を避けたいため、最新のlibstdc ++ 6パッケージのみをインストールしようとしました。ただし、インストールされたライブラリはlibstdc ++。so.6.0.21であったため、問題は続きました。 libstdc ++。so.6.0.22バージョンを具体的にインストールするにはどうすればよいですか?

12
dk13

pinning を使用して、必要なパッケージのみが新しいバージョンに更新されるようにすることができます。

または、g ++ 5.4でプログラムをコンパイルすることもできます。これは、 このページ によると、このコンパイラはすでにすべてのc ++ 14をサポートしているため、g ++-6のデフォルトは-std = c ++ 14。一方、g ++-5では、言語標準を明示的に設定する必要があります。

1
Gert Wollny

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
30