共有オブジェクトライブラリオブジェクトライブラリが見つかりません。

共有オブジェクトライブラリオブジェクトライブラリが見つかりません。

共有オブジェクトライブラリを構築しようとしていますが、共有オブジェクトライブラリを作成するとオブジェクトファイルが見つからないというメッセージが表示されます。

OSError: lib1.o: cannot open shared object file: No such file or directory

次に、コマンドを実行して依存ldd関係が何であるかを確認します。

linux-vdso.so.1 =>  (0x00007fff47dff000)
lib1.o => not found
lib2.o => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f61023db000)
/lib64/ld-linux-x86-64.so.2 (0x00007f610297c000)

次のコマンドを使用してgccをコンパイルしています。

gcc -I ../../path1/include -I ../../path2/include --shared -fPIC file1.c -o lib1.o gcc -I ../../path1/include -I ../../path3/include --shared -fPIC file2.c -o lib2.o gcc lib1.o lib2.o -shared -o lib2.so

lib1.oとlib2.oのパスで環境変数を設定するためのクイックソリューションを見つけましたが、LD_LIBRARY_PATHログインするたびにこれを実行する必要があります。私は効果的な解決策が欲しい。ターゲットファイルが見つからないのはなぜですか?パスを指定する必要がないように、共有オブジェクトファイルにオブジェクトファイルを含める方法はありますか?

ベストアンサー1

おすすめ記事