私はUnixを使ってC ++プログラムを構築しようとしています。
エラーが発生しました。
Linking CXX executable ../../bin/ME
/usr/bin/ld: cannot find -lboost_regex-mt
LD_LIBRARY_PATH環境変数でlibboost *の位置を設定してから、元のようにmakeを呼び出すことができると聞きました。
-L /usr/lib64 -l boost_regex-mt
または
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64
ところで、LD_LIBRARY_PATHはどこにありますか? LD_LIBRARY_PATH環境変数を設定するには?
ベストアンサー1
LD_LIBRARY_PATH環境変数を設定するには?
次の操作を行ったときにすでに設定されています。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64
しかし、これは問題を解決しません。$LD_LIBRARY_PATH
動的にリンク可能なライブラリを検索するための追加のディレクトリのリストを提供するために、実行時に参照されます。リンク時には参照されません(ビルドツール自体に必要なライブラリを探す場合は除く!)。
ビルド時にリンカーにライブラリを見つける場所を知らせるには、-L
リンカーオプションを使用する必要があります。また、次のことを行いました。
-L /usr/lib64
それでもエラーが発生した場合は、ライブラリが実際に存在することを確認する必要があります。その(または任意の)ディレクトリにファイルまたはlibboost_regex-mt.so
ディレクトリがありますか?libboost_regex-mt.a
同様のファイルはlibboost_regex-mt.so.othersuffix
この目的で計算されません。ない場合は、ライブラリ用の展開開発パッケージをインストールする必要があります。