`

解决/usr/bin/ld: cannot find -lxxx 问题

阅读更多
问题:
在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息:
/usr/bin/ld: cannot find -lxxx

这些讯息会随着编译不同类型的source code 而有不同的结果出来如:
/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find -lltdl
/usr/bin/ld: cannot find -lXtst

其中xxx即表示函式库文件名称,如上例的:libc.so、libltdl.so、libXtst.so。
其命名规则是:lib+库名(即xxx)+.so。


会发生这样的原因有以下三种情形:
1 系统没有安装相对应的lib
2 相对应的lib版本不对
3 lib(.so档)的symbolic link 不正确,没有连结到正确的函式库文件(.so)



解决方法:
(1)先判断在/usr/lib 下的相对应的函式库文件(.so) 的symbolic link 是否正确
若不正确改成正确的连结目标即可解决问题。

(2)若不是symbolic link 的问题引起,而是系统缺少相对应的lib安装lib即可解决。

(3)如何安装缺少的lib:
以上面三个错误讯息为例:
错误1缺少libc的LIB
错误2缺少libltdl的LIB
错误3缺少libXtst的LIB
 

  以Ubuntu为例:
  先搜寻相对应的LIB再进行安装的作业如:
  apt-cache search libc-dev
apt-cache search libltdl-dev
apt-cache search libXtst-dev

实例:
在进行输入法gcin的Source Code的编译时出现以下的错误讯息:
/usr/bin/ld: cannot find -lXtst

经检查后发现是:
lib(.so档)的symbolic link 不正确

解决方法如下:
cd /usr/lib
ln -s libXtst.so.6 libXtst.so

如果在/usr/lib的目录下找不到libXtst.so 档,那么就表示系统没有安装libXtst的函式库。
解法如下:
apt-get install libxtst-dev


摘自:http://blog.sina.com.cn/s/blog_616fb0880100xrjj.html
分享到:
评论

相关推荐

    Linux编译静态链接出现:/usr/bin/ld: cannot find -lc,解决方式

    Linux编译静态链接出现:/usr/bin/ld: cannot find -lc. 将libc.a拷贝到usr/lib/中,问题得以解决。

    /usr/bin/ld:cannot find-lThreads的解决办法

    总之,解决"/usr/bin/ld: cannot find -lThreads"的关键在于确保CMakeLists.txt正确配置了线程库的链接。这通常包括使用`find_package(Threads REQUIRED)`、设置编译标志或直接使用`target_link_libraries`与`-...

    解决 cannot find -lxxx 的问题

    ### 解决 "cannot find -lxxx" 的问题 在Linux环境下进行软件开发或构建时,可能会遇到链接器报错 `cannot find -lxxx` 的情况。这类错误通常出现在使用 `gcc` 或其他编译工具进行链接操作的过程中,当链接器无法...

    darknet /usr/bin/ld: cannot find -lcuda

    ubuntu18.04 , cuda10.0 编译darknet出现/usr/bin/ld: cannot find -lcuda cannot find -lcuda 意思是编译时未找到libcuda库。 首先查看Makefile这中cuda路径是否正确,即下面第四行lib路径 ifeq ($(GPU), 1) COMMON...

    /usr/bin/ld 找不到 -lcuda

    1,这是一个压缩文件,解压后名称应为libcuda.so,是...2,这个文件用于不具备cuda显卡的电脑在ubuntu平台配置gpgpu-sim时,绕过因为找不到lcuda而无法顺利编译的错误,将其放在/usr/local/cuda/lib64下即可解决问题。

    安装lamp报错信息及解决方法

    usr/bin/ld: cannot find -lltdl /usr/bin/ld: cannot find -lmysqlclient httpd: Syntax error on line 57 of /etc/httpd/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/...

    Ubuntu环境QT问题 /usr/bin/ld: 找不到 -lGL(已解决)

    安装完qt之后,构建项目就会出现:/usr/bin/ld: 找不到 -lGL 因为缺少了libGL环境,此时更新libGL环境 执行此命令sudo apt-get install libgl1-mesa-dev 执行完命令会提示错误,说依赖关系被破坏 因为是源有问题,...

    不同版本Linux下基于libxml2的C编译问题解决

    /usr/bin/ld: warning: libpgtypes.so.1, needed by /usr/lib/libecpg.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libpq.so.3, needed by /usr/lib/libecpg.so, not found (try using ...

    CentOS 安装软件出现错误:/lib/ld-linux.so.2: bad ELF interpreter 解决

    bash:/usr/local/bin/rar:/lib/ld-linux.so.2:badELFinterpreter:Nosuchfileordirectory ``` - 这意味着系统未能正确加载程序所需的动态链接器(ld-linux.so.2)。 2. **共享库错误**: - 在尝试运行某些依赖于...

    centos安装jdk1.8时出现没有/lib/ld-linux.so.2:这个文件的原因分析

    -bash: /usr/local/jdk/jdk1.8.0_181/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 安装完后 java -version 查看版本出现: 原因是:没有那个文件或目录,找了很久发现需要...

    解决-BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 权限不够问题

    以上所述是小编给大家介绍的解决-BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 权限不够问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持! ...

    arm-linux-gnueabi-5.4.0.tar

    /usr/local/arm/5.4.0/usr/bin/../libexec/gcc/arm-none-linux-gnueabi/5.4.0/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory 解决方法: ...

    file-5.15-mips32r1-linux-static.tar.xz

    # ./configure --host=arm-unknown-linux-uclibcgnueabi --prefix=/usr --disable-warnings LDFLAGS="-s" # ./configure --host=arm-unknown-linux-uclibcgnueabi --prefix=/usr --disable-warnings --disable-...

    bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory

    主要介绍了bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No such file or directory,需要的朋友可以参考下

    安装docker-compose的两种最简方法

    这里简单介绍下两种安装docker-compose的方式,第一种方式相对简单,但是由于网络问题,常常安装不上,并且经常会断开,第二种方式略微麻烦,但是安装过程比较稳定 方法一: # curl -L ...

    linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方法

    linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案 今天在安装程序时,发现有一个插件未安装,我就随手敲了一个命令,看都没看 yum remove yum 然后就杯具了… [root@localhost ~]#...

    mingw64.zip

    PATH : /usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_...

    libstdc++.so.6.0.17(x64)

    [root@localhost TMP]# /usr/bin/xdg-open: line 402: htmlview: command not found Failed to load core: /opt/Qt5.2.1/Tools/QtCreator/lib/qtcreator/plugins/QtProject/libCore.so: Cannot load library /opt/Qt...

    arm交叉编译工具错误解决方法

    当遇到ARM交叉编译工具错误时,正确地诊断和解决问题对于项目的顺利进行至关重要。本文将深入探讨ARM交叉编译工具错误的常见类型、原因分析以及有效的解决策略。 ### 一、ARM交叉编译工具错误概述 ARM交叉编译工具...

Global site tag (gtag.js) - Google Analytics