0

Boost C++ ライブラリをインストールするルート権限がないため、ホーム ローカルにインストールしました。コンパイルするとき、私は以下を使用しました: g++ -I/home/name/local/boost_1_47_0 -L/home/name/local/boost_1_47_0/stage/lib foo.cc -o foo -lboost_program_options

しかし、実行時には次のようになります。 error while loading shared libraries: libboost_program_options.so.1.47.0: cannot open shared object file: No such file or directory

そしてlddは次のように与えます: libboost_program_options.so.1.47.0 => not found

ライブラリの絶対パスも指定しようとしましたが、どちらも機能しません。 g++ /home/name/local/boost_1_47_0/stage/lib/libboost_program_options.so.1.47.0 -I/home/name/local/boost_1_47_0 -L/home/name/local/boost_1_47_0/stage/lib foo.cc -o foo

4

2 に答える 2

4

LD_LIBRARY_PATH環境変数を使用して、実行時リンカーにライブラリの場所を指示してみてください。

export LD_LIBRARY_PATH=/home/name/local/boost_1_47_0/stage/lib

次に、アプリケーションを再実行します。

于 2011-09-22T13:40:07.393 に答える
0

私は初心者なので、私の言葉をあまり真剣に受け止めないでください。さらに、この質問は数か月前のものであり、ずっと前に解決されたと思います。とはいえ、私はこう思います。

リンカーへのライブラリ パスを指定すると、プログラムが正常にコンパイルおよびリンクされます。ただし、バイナリを実行しようとすると、環境で定義されたパスでライブラリが検索されます。

これはbashに入力することで修正できると思います

export PATH=$PATH:path_to_your_library_folder

よろしくミロスラフ

于 2012-01-12T14:57:49.407 に答える