6

liblog4cpp実行するためにインストールが必要なプログラムがあります。

今、プログラムを別のマシンで実行したいliblog4cpp. そのため、を見つけてlog4cpp.so、プログラムの同じディレクトリに移動します。しかし、実行時にエラーが報告されました:

共有ライブラリの読み込み中にエラーが発生しました: liblog4cpp.so.4: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません

私はそれを正しくやっていますか?そのすぐ横にあるSOファイルを見つけるようにプログラムに指示するにはどうすればよいですか?

4

6 に答える 6

6

.soファイルが利用可能なパスがあると仮定すると/path、環境変数をエクスポートすることを避けて、単に使用することもできます

LD_LIBRARY_PATH=/path ./myProgram

その場合は次のことに注意してください。

export LD_LIBRARY_PATH=/path

LD_LIBRARY_PATH単一の値にリセットされ、/path以前にこの環境変数に追加したものはすべて失われます。以前の値を失わずに値を追加したい場合

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path
于 2013-08-31T14:17:41.537 に答える
4

プログラムを起動する rc スクリプトでは、アプリケーションを起動する前に LD_LIBRARAY_PATH を設定する必要があります。.so は共有ライブラリであり、実行時にリンクする必要があることに注意してください。したがって、起動前に /​​usr/lib などの標準パスで利用できるはずです。/usr/lib などの標準パスにコピーされていない場合は、次のようにパスを指定します。

export LD_LIBRARY_PATH=<new_path_of_so>:$(LD_LIBRARY_PATH)

理想的には、この .so を /usr/lib のような標準パスに配置したはずです。標準のパスにインストールされている場合は、上記のパスを設定する必要はありません。プログラムを改善するには、ldconfig.conf に新しいパスを入れてください。

このようなエラーは、次を使用してデバッグできます。

$strace <binary_name>

その依存関係を知る

$ldd <binary_name>

詳しくは下記リンクをご確認ください。

http://www.tune2wizard.com/sharedobject-crash/

于 2013-08-31T16:03:15.007 に答える