像我儿子一样永远保持好奇和梦想

[Q003][make][转载]解决/usr/bin/ld: cannot find -lxxx

上一篇 / 下一篇  2012-09-04 16:20:24 / 个人分类:linux

   [转载]解决/usr/bin/ld: cannot find -lxxx

已有 3393 次阅读2012-2-26 09:23|个人分类:LINUX环境设置|系统分类:科研笔记|关键词:ld cannot

,R!Cr`PkGE0
在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台~,d ] A0M)uzD%H;I]
  • /usr/bin/ld: cannot find -lxxx

t a yKT0这些讯息会随着编译不同类型的source code 而有不同的结果出来如:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台0JI T3UR Qb
  • /usr/bin/ld: cannot find -lc
  • /usr/bin/ld: cannot find -lltdl
  • /usr/bin/ld: cannot find -lXtst

)iBY H{"^0其中xxx即表示函式库文件名称,如上例的:libc.so、libltdl.so、libXtst.so。龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台M R'z1N Cfe
其命名规则是:lib+库名(即xxx)+.so。
9T&RlN3W8Df hi,v0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台Y!j!z&c.wJU

JX)L:J#a'c0会发生这样的原因有以下三种情形:
x:Z2C;dSE3a0
1 系统没有安装相对应的lib
#gd.}!C ~!]02 相对应的lib版本不对龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台g;A4z~.`Dz IC+Ot
3 lib(.so档)的symbolic link不正确,没有连结到正确的函式库文件(.so)龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台:k:bVG"pQ#b*t:Y

8X)Fr%FM[;r0解决方法:
M ^4B [x0(1)先判断在/usr/lib 下的相对应的函式库文件(.so) 的symbolic link是否正确龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台@#b MQO/~~3Q
若不正确改成正确的连结目标即可解决问题。龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台c\%usXN

X pA?3D]P}0(2)若不是symbolic link的问题引起,而是系统缺少相对应的lib安装lib即可解决。
'?&o6g l"hv:n;K0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 y1D{aN
(3)如何安装缺少的lib:
&a k8~p~N!x sC0以上面三个错误讯息为例:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台o5~|&VoE;R&h@
错误1缺少libc的LIB
2G'_^FD9D%d$}V0错误2缺少libltdl的LIB
8l8h3b6b1Q0错误3缺少libXtst的LIB
o6v+` [Q9k!]h5S0
 
0_kk$W#PK6l0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台&T,SJ6BX$N"{8` i0rY%L
  以Ubuntu为例:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 gU7Aq Tb+V5H2l
  先搜寻相对应的LIB再进行安装的作业如:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台y#w6[g8xgJ%]
  apt-cache search libc-dev龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台]} SKo#g$oL?g+ZB
apt-cache search libltdl-dev 龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台THMT+J'_8Jjj:Pe
apt-cache search libXtst-dev
O#LwCx J `#L0
龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台5F1VWZq;K*B;b
实例:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台,?8N N Q,MRE ch
在进行输入法gcin的Source Code的编译时出现以下的错误讯息:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台``eu7k&y8A
/usr/bin/ld: cannot find -lXtst龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台We,K"ZLN$V~

,@zw"ox3m:^ B,C0经检查后发现是:
? c@^f8V0lib(.so档)的symbolic link 不正确
3k*[T:f:~U_T0龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台OF,AJ|i-S z"H
解决方法如下:
iO8P3p:Y K0
cd /usr/lib
Jyx9{j0ln -s libXtst.so.6 libXtst.so龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台%l9^vpyegD N%]P \
龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台Q Q7~T%V4K8V
如果在/usr/lib的目录下找不到libXtst.so档,那么就表示系统没有安装libXtst的函式库。龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 k#z:E+~B0Mk5M
解法如下:龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台-f!g,`Z5G3j1f\i
apt-get install libxtst-dev
7@Nh7xoZmd0
龙8国际_龙8国际下载_龙8国际娱乐官方网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 {"i*sI9z/r jjX
转自:#blog.sina.com.cn/s/blog_616fb0880100xrjj.html

TAG: cannot ld linux Linux LINUX 系统

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar