LinuxでC++実行可能ファイルをビルドします。実行可能ファイルはいくつかのブーストライブラリにリンクしています。共有ライブラリの読み込み中にエラーが発生しました:libboost_system.so.1.45.0:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリがありません
私はバイナリを実行しようとすると、これが出力されます。
[email protected]:~/work/dev/c++/projects/testfgci/dist/Debug/GNU-Linux-x86$ ./testfgci
./testfgci: error while loading shared libraries: libboost_system.so.1.45.0: cannot open shared object file: No such file or directory
私は、依存関係を確認するために、バイナリ上でlddを実行します。
[email protected]:~/work/dev/c++/projects/testfgci/dist/Debug/GNU-Linux-x86$ ldd testfgci
linux-gate.so.1 => (0x00380000)
libboost_system.so.1.45.0 => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00b50000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x005f6000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0099a000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x001b3000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00110000)
/lib/ld-linux.so.2 (0x00ea2000)
私はなぜliboos_system.slわかりません.1.45.0 SOが見つかりません。今日はもう少し早く成功しました。誰でも説明できますか?
ビルドするとき、あなたは追加のリンカライブラリのコンパイラにフラグを渡していることは可能であるが、あなたがプログラムを実行する場合、Boostライブラリドン」:
は、これは私のために働いていたものですリンカーパスには存在しません。ライブラリの問題をリンクする可能性があります(http://stackoverflow.com/questions/4568187/linking-problem-in-libraries) – birryree
答えが見つかりました。 LD_LIBRARY_PATHにパスを追加してエクスポートしなければなりませんでした。バイナリは実行されますが、エラーが報告されます(エラーシステム:9:ファイル記述子が不良です)。私はそれを反映するためにこの質問をするか、新しい質問をする必要があります – skyeagle