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

转载 2017年03月02日 12:13:02

本文来自:http://blog.chinaunix.net/uid-354915-id-3573647.html


今天编译程序遇到:/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


自己注:如果是/usr/bin/ld: cannot find -liconv,则是因为iconv库没有安装(如果在库目录下没有找到的话),需要到http://ftp.gnu.org/gnu/libiconv/下载安装

解压:tar -zxvf libiconv-1.14.tar.gz

cd ./libiconv-1,14

安装(默认安装到/usr/local下)

./configure

make

make install


总结:

      首先查看/usr/lib目录下是否有该库文件,以及是否链接正确。如果没有安装,安装即可。如果链接错误,重新建立链接即可。

caffe编译遇到的问题(持续更新)

caffe编译遇到的问题(持续更新)1:错误:    .build_release/tools/caffe: error while loading shared libraries: libhdf5...
  • m0_37407756
  • m0_37407756
  • 2017年04月26日 10:59
  • 3515

日常linux相关工作问题汇总

此篇博文记录自己学习Linux及Linux工作中遇到的各种故障及问题的汇总 CentOS6.5中安装Mysql后在建立mysql库时并初始化时出现错误提示:Installing MySQL syste...
  • s295580857
  • s295580857
  • 2015年11月26日 14:26
  • 1138

cygwin中动态库链接的问题

问题的出现 (这里解释得比较累赘, 要找到答案, 可以直接进入第二章节) 看书(Ruminations on C++)时, 以章节为单位写了一些独立的小程序(使用cygwin g++作为编译器, s...
  • njnu_mjn
  • njnu_mjn
  • 2013年10月31日 23:22
  • 4477

【转载】解决/usr/bin/ld: cannot find -lxxx 问题

问题: 在linux环境编译应用程式或lib的sourcecode时常常会出现如下的错误讯息: /usr/bin/ld: cannot find -lxxx 这些讯息会随...
  • JonathanWarrior
  • JonathanWarrior
  • 2014年08月22日 16:23
  • 315

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

原文来自:http://blog.sina.com.cn/s/blog_4156950c0100sfzz.html 问题: 在linux环境编译应用程式或lib的source code时常常会...
  • dayeshisir
  • dayeshisir
  • 2012年05月06日 10:58
  • 8367

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

在linux环境下编译安装应用程序或编译调试代码时常常会出现如下的错误: /usr/bin/ld: cannot find -lxxx 这些信息会随着编译不同类型的source code而有不同的...
  • zqj6893
  • zqj6893
  • 2013年11月30日 17:44
  • 6943

精辟!(/usr/bin/ld: cannot find -lxxx)可能出现的问题和原因

(/usr/bin/ld: cannot find -lxxx)  2013-03-16 21:45 分享到: 问题描述 /usr/bin/ld: can...
  • Cinberella
  • Cinberella
  • 2014年07月31日 16:36
  • 911

解決 /usr/bin/ld: cannot find -lxxx 問題

問題: 在linux環境編譯應用程式或lib的source code時常常會出現如下的錯誤訊息: /usr/bin/ld: cannot find -lxxx 這些訊息會隨著編譯不同類型的so...
  • zhrh0096
  • zhrh0096
  • 2013年07月01日 15:51
  • 519

/usr/bin/ld: cannot find -lxxx 问题总结

http://www.cnblogs.com/cassvin/archive/2011/07/24/Linux_Qtopia_2.html 详情点击: 原文
  • Vince_001
  • Vince_001
  • 2014年11月10日 15:32
  • 487

Android编译遇到错误/usr/bin/ld: cannot find -lstdc++的解决

Android编译遇到错误/usr/bin/ld: cannot find -lstdc++的解决   2010-07-12 01:41:28|  分类: FreeBSD/Linux |字号 ...
  • cschengvdn
  • cschengvdn
  • 2011年11月25日 11:34
  • 4270
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:错误-解决/usr/bin/ld: cannot find -lxxx 问题
举报原因:
原因补充:

(最多只允许输入30个字)