古い CentOS マシンに c++11 をサポートする c++ プログラムをデプロイする

古い CentOS マシンに c++11 をサポートする c++ プログラムをデプロイする

私のプログラムは libstdc++.so.6 に依存しており、これは /lib64/libstdc++.so.6.0.19 に依存しています。

しかし、私の古い CentOS には libstdc++.so.6 => libstdc++.so.6.0.13 があります

質問

  1. libstdc++.so.6 のバージョンが 0.19 未満の場合、確認する必要がありますか?
  2. libstdc++ を libstdc++.so.6.0.19 に更新するにはどうすればよいですか?

答え1

libstc++.so.6.0.13互換性がlibstdc++.so.0.19あります。libstdc++ マニュアルCentOS マシン上でプログラムを実行しても問題はないはずです。

一般に、Linux 上の共有ライブラリは、次のバージョン規則に従う必要があります: libfoo.so.X.Y.Z、ここで はXメジャー番号、Yと はZマイナー番号です。Xが増加すると、新しいバージョンは古いバージョンと互換性がなくなります。 増加は、YABI に互換性のある変更が行われたことを意味します。 変更は、Zバグが修正されたが、インターフェイスは変更されていないことを意味します。 実行可能バイナリには、使用する共有ライブラリへの参照が含まれますが、これらの参照にはメジャー番号のみが含まれます。実際に使用されるライブラリは、プログラムが実行されるマシン上のライブラリ シンボリック リンクによって決まります。例:

/usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.25

関連情報