をコンパイルしようとしていますlibpng
が、これにはlibz
. libz.so.1
所有者を自宅にインストールして設定しましたが、 の出力ではまだ を使用しているLD_LIBRARY_PATH
ため、結果は得られません。ldd
/usr/local/lib/libz.so.1
そして、make の出力は "-L/home/zlib -lz" のように表示されます。なんで?
/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
.