usr/bin/ld: cannot find -l

前端 未结 14 2741
离开以前
离开以前 2020-11-22 07:07

I\'m trying to compile my program and it returns this error :

usr/bin/ld: cannot find -l

in my makefile I use the c

14条回答
  •  醉酒成梦
    2020-11-22 08:08

    First, you need to know the naming rule of lxxx:

    /usr/bin/ld: cannot find -lc
    /usr/bin/ld: cannot find -lltdl
    /usr/bin/ld: cannot find -lXtst
    

    lc means libc.so, lltdl means libltdl.so, lXtst means libXts.so.

    So, it is lib + lib-name + .so


    Once we know the name, we can use locate to find the path of this lxxx.so file.

    $ locate libiconv.so
    /home/user/anaconda3/lib/libiconv.so   # <-- right here
    /home/user/anaconda3/lib/libiconv.so.2
    /home/user/anaconda3/lib/libiconv.so.2.5.1
    /home/user/anaconda3/lib/preloadable_libiconv.so
    /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so
    /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so.2
    /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so.2.5.1
    /home/user/anaconda3/pkgs/libiconv-1.14-0/lib/preloadable_libiconv.so
    

    If you cannot find it, you need to install it by yum (I use CentOS). Usually you have this file, but it does not link to right place.


    Link it to the right place, usually it is /lib64 or /usr/lib64

    $ sudo ln -s /home/user/anaconda3/lib/libiconv.so /usr/lib64/

    Done!

    ref: https://i-pogo.blogspot.jp/2010/01/usrbinld-cannot-find-lxxx.html

提交回复
热议问题