原文网址:http://eminzhang.blog.51cto.com/5292425/1285705

/usr/bin/ld: cannot find -lxxx问题总结
linux下编译应用程序常常会出现如下错误:
/usr/bin/ld: cannot find -lxxx
意思是编译过程找不到对应库文件。其中,-lxxx表示链接库文件 libxxx.so。
注:有时候,由于库文件是编译过程临时生成的,如果前面出错也会导致出现这种情况,下面针对的是由于本机系统环境缺失而引起的。。
一般出现这种错误有以下几种原因:
1.系统缺乏对应的库文件;
2.版本不对应;
3.库文件的链接错误;
4.库文件路径设置问题。
对应第一第二种情况,可以通过下载安装lib来解决,ubuntu大多数可以直接通过apt-get来安装:
apt-get install libxxx-dev
一般遇到这种问题笔者第一时间也是会去检查系统是否已安装该lib或者是否已选择正确版本(只是习惯问题),如果还是不能解决问题,那么,引起错误的原因不是链接错误就是库文件路径问题了。

通过find或者locate指令定位到链接文件,查看链接文件是否正确的指向了我们希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。

编译程序遇到:/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lxml2
解决/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

如果是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在目录写进去,然后在终端输入 ldconfig 更新缓存。

【转】关于usr/bin/ld: cannot find -lxxx问题总结相关推荐

  1. 解决/usr/bin/ld: cannot find -lxxx

    通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的ld检索目录中. 解决方式: 1.确认库文件是否存在,比如-l123, 在/usr ...

  2. Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的通用解决方法

    Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的通用解决方法 参考文章: (1)Linux系统中提示/usr/bin/ld: cannot find -lxxx错 ...

  3. /usr/bin/ld: cannot find -lxxx错误的通用解决方法

    Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的通用解决方法 在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息,代码如下: ...

  4. linux查看ld文件,Linux下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)

    /usr/bin/ld: cannot find -lhdf5 这表示找不到库文件 libhdf5.so,若是其它库文件,则是 cannot find -lxxx 了,其中 xxx 是库文件的名字. ...

  5. /usr/bin/ld: cannot find -lxxx 问题 解决方法总结

    很多程序都要部署到linux下来运行,遇到了挺多问题,昨天就集中性遇到了 在编译应用时,遇到了 /usr/bin/ld: cannot find -lxxx 这种情况是系统找不到对应的库文件,其中,- ...

  6. 转载 :make报错:/usr/bin/ld: cannot find -lXXX

    /usr/bin/ld: cannot find -lxxx问题总结 linux下编译应用程序常常会出现如下错误:   /usr/bin/ld: cannot find -lxxx        意思 ...

  7. 【Bugfix系列】/usr/bin/ld: cannot find -lxxx 的解决办法

    DATE:2021.9.23 文章目录 1.前言 2.参考 3.解决方案 3.1.安装此库文件和相关软件 3.2.将库文件所在路径添加到gcc的搜索路径 3.2.1.使用 /etc/ld.so.con ...

  8. Qt5.2编译时出现/usr/bin/ld: cannot find -lxxx 错误

    在Linux中,lib库的命名规则为:lib+库名+.so 而-lxxx,其中xxx表示lib库的名字. 出现"/usr/bin/ld: cannot find -lxxx" 错误 ...

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

    linux下编译应用程序常常会出现如下错误: /usr/bin/ld: cannot find -lxxx 意思是编译过程找不到对应库文件.其中,-lxxx表示链接库文件 libxxx.so. 注:有 ...

最新文章

  1. 程序化广告(1):程序化广告概述
  2. NSCache和NSURLCache网络缓存优化
  3. ESFramework网络通信框架 4.0 性能测试
  4. NPashaP的二分图源码部分
  5. 什么是“软件架构设计”(推荐)
  6. android progressbar动态,如何在android中动态启动和完成progressBar
  7. 一名拿到阿里offer的Java程序员分享三轮面试经验
  8. mysql 错误 0152_SP2-1503 SP2-0152 错误解决
  9. jzoj6826-[2020.10.17提高组模拟]隔膜【博弈论】
  10. Apaceh配置httpd-vhosts虚拟主机
  11. qmail 发邮件故障
  12. 对象取值操作Object.values()
  13. python发送短信验证码(互亿无线)
  14. 知识图谱构建通俗理解
  15. 中国人工智能发展的现状
  16. 安装intel wifi link 5100 AG无线网卡驱动程序,iwlwifi-5000-5.ucode中的readme文件
  17. 电脑的锁屏密码忘记了怎么办?
  18. 最新的三星android版本号,三星率先公布Android 12/13升级机型名单,可惜S9/Note9被抛弃...
  19. Java SE菜鸟之泛型
  20. 开源App动画Lottie

热门文章

  1. C#中操作Word(8)—— 向Word中插入图表的三种方法(一)
  2. Entrust Datacard宣布与IBM Security开展目标远大的合作,以助力确保移动工作人员安全
  3. mongodb 分组获取最新一条的数据
  4. 【JS】通过JS实现超市小票打印功能——ActiveX控件
  5. 商业银行相关不良资产监管指标大全
  6. C语言结构体学生基本资料,用结构体定义10个学生基本信息
  7. epub文件是什么文件?用这个方法直接在浏览器打开
  8. 语言模型(马尔可夫模型,n元语法)
  9. javaEE核心框架之 Mybatis ( 一 )
  10. Markdown 教程: 1 数学公式和特殊符号