プログラムは、Linux PC から Linux + Xenomai ARM ツールチェーンにクロスコンパイルされた Xenomai テスト スイートの一部です。
# echo $LD_LIBRARY_PATH
/lib
# ls /lib
ld-2.3.3.so libdl-2.3.3.so libpthread-0.10.so
ld-linux.so.2 libdl.so.2 libpthread.so.0
libc-2.3.3.so libgcc_s.so libpthread_rt.so
libc.so.6 libgcc_s.so.1 libstdc++.so.6
libcrypt-2.3.3.so libm-2.3.3.so libstdc++.so.6.0.9
libcrypt.so.1 libm.so.6
# ./clocktest
./clocktest: error while loading shared libraries: libpthread_rt.so.1: cannot open shared object file: No such file or directory
.1
末尾の はファイル名の一部ですか? それは一体どういう意味ですか?
ベストアンサー1
ライブラリは動的ライブラリです。実行時にライブラリがどこにあるかをオペレーティング システムに伝える必要があります。
そのためには、次の簡単な手順を実行する必要があります。
ライブラリがどこに配置されているか分からない場合は、調べてください。
sudo find / -name the_name_of_the_file.so
動的ライブラリパス環境変数の存在を確認する(
LD_LIBRARY_PATH
)echo $LD_LIBRARY_PATH
表示するものがない場合は、デフォルトのパス値を追加します(必要に応じて追加しないでください)。
LD_LIBRARY_PATH=/usr/local/lib
必要なパスを追加し、エクスポートしてアプリケーションを試します。
パスは があるディレクトリである必要があることに注意してください
path.so.something
。したがって、path.so.something
が にある場合は/my_library/path.so.something
、次のようになります。export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_library/