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

[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

ZB{ TK ]]0
在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息:
4E z/OM(TdD0RF!Y5C0
  • /usr/bin/ld: cannot find -lxxx

q5Am*h `:Yk9~F"@0这些讯息会随着编译不同类型的source code 而有不同的结果出来如:
.PKe0Jf7t0
  • /usr/bin/ld: cannot find -lc
  • /usr/bin/ld: cannot find -lltdl
  • /usr/bin/ld: cannot find -lXtst

u#{/]sBW0其中xxx即表示函式库文件名称,如上例的:libc.so、libltdl.so、libXtst.so。
DlZo JuC a0其命名规则是:lib+库名(即xxx)+.so。ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 kN O"@#q E5c.Z
ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台%a(Tz u(W-[ lg Z
ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台*L&jj Y9|+Y
会发生这样的原因有以下三种情形:
7t&I+xyb7MV8|'\0
1 系统没有安装相对应的lib
"I9P/w1p \6e02 相对应的lib版本不对ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 }QP [(Pw E Bu
3 lib(.so档)的symbolic link不正确,没有连结到正确的函式库文件(.so)ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台? g{Yd X7xNP

];}?s/D'Y{(NU3^r0解决方法:ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台8Y1^0{3I0E0Ux
(1)先判断在/usr/lib 下的相对应的函式库文件(.so) 的symbolic link是否正确ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台WR^ [ cE1H
若不正确改成正确的连结目标即可解决问题。
sm d abB{0ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台)k6}H6AW![ w7i
(2)若不是symbolic link的问题引起,而是系统缺少相对应的lib安装lib即可解决。
8W!P;m$i2`Tl1K4r0ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台.U s!~W'y lM
(3)如何安装缺少的lib:
TC@4[ ^,|0以上面三个错误讯息为例:ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台)lG[YsU0m
错误1缺少libc的LIB
N,b7{(? S%G:e.j0错误2缺少libltdl的LIB
]a s7R(|0错误3缺少libXtst的LIB ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台/gt S)F(LCL#?
 ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台Ii)J0}&OW\(o*@.p

v-eWe#[V&^0  以Ubuntu为例:
ItBB8}&O`SVXv0  先搜寻相对应的LIB再进行安装的作业如:ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 j X3\:j.f*[kz
  apt-cache search libc-devET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台m}+vA[
apt-cache search libltdl-dev ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台6Vi&do3r
apt-cache search libXtst-dev
bV;DN%KBx0
ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台,A!|[6I6?}U#o
实例:ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台"m2IGS5U F~8MNsE
在进行输入法gcin的Source Code的编译时出现以下的错误讯息:ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台LyeDD HBn
/usr/bin/ld: cannot find -lXtst
w]}~-w/X o0

Y(z9Cf`;T}Qh&M0经检查后发现是:ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台t9y)ok4M_,pB5BE
lib(.so档)的symbolic link 不正确ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台^/VT1nX"WY
ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台'Rdf/kYN2s;|7@Y
解决方法如下:
:R1GT-H|0UQe.M&RUKh0
cd /usr/lib
` JfG c(S[Cnk9]2RO0ln -s libXtst.so.6 libXtst.so
&yG!_&Z?g*vWm0
ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台lk/E2VL p:dHk
如果在/usr/lib的目录下找不到libXtst.so档,那么就表示系统没有安装libXtst的函式库。ET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台:s)]3Da]._0TF5O
解法如下:
c7vhbu"?uY y7~0
apt-get install libxtst-devET创芯网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台w/J(K#T d:c,HVw9|

u7m!Hs9V*kme^{1U p0转自:http://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