CentOSのGLIBCXX_3.4.21

CentOSのGLIBCXX_3.4.21

UbuntuコンピュータでC ++アプリケーションを作成しました。 Centosマシンにバイナリをコピーしました。エラーが発生しました:

/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

必要と思われるパッケージをインストールしました。

yum install gcc gcc-c++ make openssl-devel

それでも同じエラーが発生します。

その後、開発ツール全体をインストールしました。

yum groupinstall 'Development Tools'

それでも同じエラーが発生します。この問題を解決するには?

UPD

私はglibc次のコマンドを使用して、自分のコンピュータにどのバージョンがあるかを確認することにしましたldd --version

Ubuntu: 2.23
Centos6.9: 2.12

Ubuntuバージョン2.23CentOSについて文句を言うのはなぜですか?GLIBCXX_3.4.21glibc

答え1

これはCentOS7で私にとって効果的でした。

export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64

https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths

答え2

存在しません(EPELリポジトリもアクティブなCentos 7システムで)。

$ sudo yum whatprovides '*libstdc++*' | egrep -o '3\.4\.[0-9]+' | sort -u
...

したがって、それを提供するリポジトリを探すか、適切なバージョンのライブラリを直接コンパイルし、適切なバージョンのライブラリを使用するようにバイナリをパッチする必要があります。あるいは、3.4.19これが上記のコマンドが私に提供した最も高い数字であると考えてください(Centos 7の場合、Centos 6以下では間違いなくより低い数字を使用できます)。

関連情報