ld は既存のライブラリを見つけることができません 質問する

ld は既存のライブラリを見つけることができません 質問する

この Debian lenny システムでアプリケーションを g++ にリンクしようとしています。ld は指定されたライブラリが見つからないとエラーを出します。ここでの具体的な例は ImageMagick ですが、他のいくつかのライブラリでも同様の問題が発生しています。

次のようにリンカーを呼び出します:

g++ -w (..lots of .o files/include directories/etc..) \
-L/usr/lib -lmagic

ld は不満を言う:

/usr/bin/ld: cannot find -lmagic

ただし、libmagic は存在します:

$ locate libmagic.so
/usr/lib/libmagic.so.1
/usr/lib/libmagic.so.1.0.0
$ ls -all /usr/lib/libmagic.so.1*
lrwxrwxrwx 1 root root    17 2008-12-01 03:52 /usr/lib/libmagic.so.1 -> libmagic.so.1.0.0
-rwxrwxrwx 1 root root 84664 2008-09-09 00:05 /usr/lib/libmagic.so.1.0.0
$ ldd /usr/lib/libmagic.so.1.0.0 
    linux-gate.so.1 =>  (0xb7f85000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb7f51000)
    libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7df6000)
    /lib/ld-linux.so.2 (0xb7f86000)
$ sudo ldconfig -v | grep "libmagic"
    libmagic.so.1 -> libmagic.so.1.0.0

この問題をさらに診断するにはどうすればよいでしょうか。また、何が問題なのでしょうか。私がやっていることはまったく愚かなことなのでしょうか。

ベストアンサー1

問題は、リンカーが探しているlibmagic.soのに、libmagic.so.1

簡単なハックとしては、シンボリックリンクlibmagic.so.1を張ることですlibmagic.so

おすすめ記事