0

SASLでNetbeansの動作環境を作りました。サンプル コードはビルドされ、Netbeans からも適切に実行されます。しかし、ターミナルからexeを実行しようとすると、機能しません。エラーは次のように表示されます。

./cppapplication_1: 共有ライブラリのロード中にエラーが発生しました: libanonymous.so.2: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません

以下のコマンドを使用してPATHを設定しようとしました:

export PATH=/usr/lib64/sasl2/:$PATH

それでも同じエラーが発生します。他に何かする必要はありますか?

4

2 に答える 2

1

これを試すこともできます。

ldd <name of executable>

依存ライブラリとその期待されるパスが表示されます。実行可能ファイルが予期しているパスに lib が存在するかどうかを確認します。

于 2012-11-19T11:16:20.147 に答える
1

libanonymous環境変数へのパスを追加する必要がありますLD_LOAD_LIBRARY

アップデート:

そうするために:

  1. たとえば、次のようにしてライブラリを見つけますfind / -name "libanonymous.so.2"locate libanonymous.so.2
  2. 次のように見つかったパスを追加します。export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:<path to lib>

更新 1:

あなたのコメントからアノンの答えまで、問題のライブラリは の下にあることがわかります/usr/lib64/sasl2/

したがって、次のようにLD_LOAD_LIBRAYパスを設定したい場合があります。

export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:/usr/lib64/sasl2/

更新 2

これは、後でライブラリを必要とするプログラムを実行する同じシェルで行う必要があります ( cppapplication_1)。

cd <dir for cppapplication_1>; export LD_LOAD_LIBRARY=$LD_LOAD_LIBRARY:/usr/lib64/sasl2/; ./cppapplication_1
于 2012-11-19T11:30:03.943 に答える