共有ライブラリのロード中に Linux エラーが発生しました: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません 質問する

共有ライブラリのロード中に Linux エラーが発生しました: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません 質問する

プログラムは、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

ライブラリは動的ライブラリです。実行時にライブラリがどこにあるかをオペレーティング システムに伝える必要があります。

そのためには、次の簡単な手順を実行する必要があります。

  1. ライブラリがどこに配置されているか分からない場合は、調べてください。

    sudo find / -name the_name_of_the_file.so
    
  2. 動的ライブラリパス環境変数の存在を確認する( LD_LIBRARY_PATH)

    echo $LD_LIBRARY_PATH
    

    表示するものがない場合は、デフォルトのパス値を追加します(必要に応じて追加しないでください)。

    LD_LIBRARY_PATH=/usr/local/lib
    
  3. 必要なパスを追加し、エクスポートしてアプリケーションを試します。

    パスは があるディレクトリである必要があることに注意してくださいpath.so.something。したがって、path.so.somethingが にある場合は/my_library/path.so.something、次のようになります。

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_library/
    

出典の参照

おすすめ記事