CentOSにカスタムブーストバージョンをインストールする方法は?

CentOSにカスタムブーストバージョンをインストールする方法は?

コンパイルしてインストールしようとしています。宣伝する1.54 CentOSのソースコード。

ドキュメントは非常にシンプルで、インターネット上で多数のチュートリアルを利用できます(1)(2)(サム)。これが私がしたことです:

wget http://sourceforge.net/projects/boost/files/boost/1.54.0/boost_1_54_0.tar.gz
tar -xzvf boost_1_54_0.tar.gz
cd boost_1_54_0
./bootstrap.sh --prefix=/usr/local
./b2 install --with=all

このブーストを正しくコンパイルしてインストールすると、/usr/local/libすべてが問題ないようです。

これでブーストが必要な他のソフトウェアをコンパイルしましたが、gccすべてがうまくいきます。私の理解によれば、gcc必要なライブラリを見つける限り、すべてがうまくいくでしょう。

しかし、今問題は、コンパイルされたバイナリを実行すると次のエラーが発生することです。

./myProgram
  ./myProgramm: error while loading shared libraries: libboost_system.so.1.54.0: cannot open shared object file: No such file or directory

なぜ図書館が見つからないのですか?

また、以下を試しました。

ldconfig
locate boost
  [...]

ただし、ブーストライブラリが見つかりません。手動でパスを見つけましたが、次のようになります。

/usr/local/lib/libboost_system.so.1.54.0

また、シンボリックリンクを作成しましたが、/usr/lib問題は解決されませんでした。

どんなアイデアがありますか?どうですか?

ベストアンサー1

プログラムをコンパイルするときに追加する必要があります-Wl,-R/usr/local/libLDFLAGS

-Rリンカオプション(ランタイムリンカのパスを指定するために使用されます) - に渡すように-Wl指示します。gccld

共有ライブラリーの場合は、リンカーがコンパイル中にそのライブラリーを見つけるようにする必要があります。そして実行時(フラグ-Lと参照-R

あなたはそれを使用することができます

$ ldd myProgramm

ランタイムリンカーパスが正しく設定されていることを確認してください。つまり、必要な共有ライブラリが見つかるかどうか、またはプログラムの起動時にロードする共有ライブラリが何であるかを確認してください。

おすすめ記事