ld cannot find an existing library

來源:互聯網
上載者:User

 am attempting to link an application with g++ on this Debian lenny system. ld is complaining it cannot find specified libraries. The specific example here is ImageMagick, but I am having similar problems with a few other libraries too.

I am calling the linker with:

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

ld complains:

/usr/bin/ld: cannot find -lmagic 

However, libmagic exists:

$ 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 

How do I diagnose this problem further, and what could be wrong? Am I doing something completely stupid?

 

The problem is the linker is looking for libmagic.so but you only have libmagic.so.1

A quick hack is to symlink libmagic.so.1 to libmagic.so

 

 

that works, I am kind of perplexed that it would name the file in a completely useless way by default - can you provide any insight why it would do this by default? – maxpenguin
Dec 3 '08 at 1:09 

Most likely it is a misconfiguration of the install script – grepsedawk
Dec 3 '08 at 1:15 

The foo.so.1 is a symlink to foo.so.1.0.0 too. This way, you can have several versions of a library in your system, and if an application needs a specific one, it can link to it, while in general, the newest one is chosen by
symlink. I do not know why this symlink was missing. – Svante
Dec 3 '08 at 1:19 

libmagic.so.1 is the soname, used by the dynamic linker; libmagic.so is used by the linker, and is usually together with the headers in the -dev package. The symlink might be missing because the -dev package was not installed.
– CesarB
Dec 3 '08 at 10:49

 

 

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.