2012-03-26 8 views
1

私はちょうどubuntuにブースト1.49バージョンをインストールしました。私は(それがlibboost_date_timeを使用するすべてのファイルで起こっているので、それゆえ、私はC++ファイルを投稿していないです)私のファイルのいずれかを実行していたときにしかし、今、私は次のエラーを取得する:ubuntuとlibboost_date_timeのブースト1.49

./test.shared.array.exe: error while loading shared libraries: libboost_date_time.so.1.49.0: cannot open shared object file: No such file or directory 

私はどこかチェックboost.buildはライブラリをインストールしました。libboost_date_time.so.1.49.0/usr/local/です。

なぜこのようなエラーが発生しますか?どうすれば問題を解決できますか?

これら

/usr/local/boost_1_49_0

/usr/local/boost_1_49_0$ ls 
b2  boost-build.jam bootstrap.bat index.htm libs    rst.css 
bin.v2 boostcpp.jam  bootstrap.log index.html LICENSE_1_0.txt  status 
bjam boost.css  bootstrap.sh INSTALL  more    tools 
boost boost.png  doc   Jamroot  project-config.jam 

の内容であり、これは、私はおそらくこのパスでの.soさんを探していません

/usr/local/lib$ ls 
libboost_chrono.a    libboost_prg_exec_monitor.so.1.49.0 
libboost_chrono.so    libboost_program_options.a 
libboost_chrono.so.1.49.0  libboost_program_options.so 
libboost_date_time.a   libboost_program_options.so.1.49.0 
libboost_date_time.so   libboost_random.a 
libboost_date_time.so.1.49.0 libboost_random.so 
libboost_exception.a   libboost_random.so.1.49.0 
libboost_filesystem.a   libboost_regex.a 
libboost_filesystem.so   libboost_regex.so 
libboost_filesystem.so.1.49.0 libboost_regex.so.1.49.0 
libboost_graph.a    libboost_serialization.a 
libboost_graph.so    libboost_serialization.so 
libboost_graph.so.1.49.0  libboost_serialization.so.1.49.0 
libboost_iostreams.a   libboost_signals.a 
libboost_iostreams.so   libboost_signals.so 
libboost_iostreams.so.1.49.0 libboost_signals.so.1.49.0 
libboost_locale.a    libboost_system.a 
libboost_locale.so    libboost_system.so 
libboost_locale.so.1.49.0  libboost_system.so.1.49.0 
libboost_math_c99.a   libboost_test_exec_monitor.a 
libboost_math_c99f.a   libboost_thread.a 
libboost_math_c99f.so   libboost_thread.so 
libboost_math_c99f.so.1.49.0 libboost_thread.so.1.49.0 
libboost_math_c99l.a   libboost_timer.a 
libboost_math_c99l.so   libboost_timer.so 
libboost_math_c99l.so.1.49.0 libboost_timer.so.1.49.0 
libboost_math_c99.so   libboost_unit_test_framework.a 
libboost_math_c99.so.1.49.0 libboost_unit_test_framework.so 
libboost_math_tr1.a   libboost_unit_test_framework.so.1.49.0 
libboost_math_tr1f.a   libboost_wave.a 
libboost_math_tr1f.so   libboost_wave.so 
libboost_math_tr1f.so.1.49.0 libboost_wave.so.1.49.0 
libboost_math_tr1l.a   libboost_wserialization.a 
libboost_math_tr1l.so   libboost_wserialization.so 
libboost_math_tr1l.so.1.49.0 libboost_wserialization.so.1.49.0 
libboost_math_tr1.so   ocaml 
libboost_math_tr1.so.1.49.0 perl 
libboost_prg_exec_monitor.a python2.7 
libboost_prg_exec_monitor.so R 
+0

お使いのシステムは、おそらくリットルではありませんこのフォルダに.soのファイルがあります。 /etc/ld.so.confファイルを確認してください。私は/ usr/libにインストールされたブーストライブラリに慣れています... –

答えて

4

お使いのシステム内に持っているものです。

/etc/ld.so.confを調べて、どのディレクトリが検索されているかを確認してください。 /usr/localはインストールする場所が奇妙です。私は/ usr/libや/ usr/local/libが必要です。

[EDIT新しい情報を反映する]

あなたは/ usr/local/libにブーストをインストールしているので、(私はすべての.so年代が下にあると仮定しています)、このパスは/ の/ etcに既にありますld.so.conf.dあなたがにldconfigを実行してみることができます。

sudo ldconfig

は、あなたが右のライブラリ、例えば使用してコンパイルされていることを確認してください:

gcc test.shared.array.cpp -lboost_date_time

+0

私はそのディレクトリに4つのファイル(GL.conf、i686-linux-gnu.conf、libasound2.conf、libc.conf)を持っています。 libc.conf '#libc default configuration /usr/local/lib'の内容です。 '/ usr/local/lib'をチェックしたところ、そのディレクトリに' libboost_date_time.so.1.49.0'がありますが、 '/ usr/lib'にはありません。 '/ usr/local/boost_1_49_0 /'にboostをインストールしました。私はアプリケーションフォルダからインストールしたboost_1.42でうまく動作しましたが、1.49バージョンをインストールするように提案されたので、両方のバージョンがあります。 1.49をアンインストールできる方法はありますか?今は何も実行できません。 – user1155299

+0

@ user1155299:インストールして以来、1.49を使用することもできますが、それは最新のバージョンです。上記で説明したように、システムが検索するフォルダに.soを入れたり、インストールフォルダを追加したりすることができます。あなたがそれをしている間に何か問題がある場合は教えてください... –

+0

私は '/ usr/local/boost_1_49_0'の内容で自分の投稿を編集しました。 .soファイルが '/ etc/ld.so.conf.d'にまだインストールされていれば、そのフォルダに直接.soファイルがありません。 – user1155299