1

をコンパイルしようとしていますlibpngが、これにはlibz. libz.so.1所有者を自宅にインストールして設定しましたが、 の出力ではまだ を使用しているLD_LIBRARY_PATHため、結果は得られません。ldd/usr/local/lib/libz.so.1

そして、make の出力は "-L/home/zlib -lz" のように表示されます。なんで?

4

1 に答える 1

4

/home/mylibs/libz.soおそらく、 からへのシンボリック リンクが必要です/home/mylibs/libz.so.1

-lzは を検索しますが、は検索しlibz.soないことに注意してください。そのlibz.so.1ため、リンカは検索を続け、 でそのようなリンクを見つけます/usr/local/lib

それ以外に、実行可能ファイルのヘッダーに NEEDED エントリ (動的な依存関係を記録する) を次のように表示する必要があります。

$ objdump -x a.out | grep NEEDED

それらがフルパスで記録されているかどうかを確認するには、 aslibz.soまたは as libz.so.1.

于 2013-07-15T13:00:05.017 に答える