用户工具

站点工具


编程

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
编程 [2019/09/23 21:35]
admin
编程 [2020/09/06 18:14] (当前版本)
183.221.84.95
行 1: 行 1:
 ====== cannot find -lxxx问题总结 ====== ====== cannot find -lxxx问题总结 ======
-在linux环境编译应或lib的source code时常常会出现如下的错误讯息:+在linux环境编译应或lib的source code时常常会出现如下的错误讯息:
 /​usr/​bin/​ld:​ cannot find -lxxx /​usr/​bin/​ld:​ cannot find -lxxx
  
-这些讯息会随着编译不同类型的source code 有不同的结果出来如:+这些讯息会随着编译不同类型的source code有不同的结果出来如:
   - /​usr/​bin/​ld:​ cannot find -lc    - /​usr/​bin/​ld:​ cannot find -lc 
   - /​usr/​bin/​ld:​ cannot find -lltdl ​   - /​usr/​bin/​ld:​ cannot find -lltdl ​
   - /​usr/​bin/​ld:​ cannot find -lXtst   - /​usr/​bin/​ld:​ cannot find -lXtst
-其中xxx即表⽰件名称,如上例的:libc.so、libltdl.so、libXtst.so。 其命名规则是:lib+库名(即xxx)+.so。  +其中xxx即函件名称,如上例的:libc.so、libltdl.so、libXtst.so。 其命名规则是:lib+库名(即xxx)+.so。  
-会发这样的原因有以下三种情形:+会发这样的原因有以下三种情形:
   - 系统没有安装相对应的lib ​   - 系统没有安装相对应的lib ​
   - 相对应的lib版本不对 ​   - 相对应的lib版本不对 ​
-  - lib(.so档)的symbolic link 不正确,没有连结到正确的函件(.so)+  - lib(.so档)的symbolic link 不正确,没有连结到正确的函件(.so)
  
-解决法: +解决法: 
-  - 先判断在/​usr/​lib 下的相对应的函件(.so) 的symbolic link 是否正确 若不正确改成正确的连结⽬标即可解决问题。 ​+  - 先判断在/​usr/​lib 下的相对应的函件(.so) 的symbolic link 是否正确若不正确改成正确的接,即可解决问题。 ​
   - 若不是symbolic link 的问题引起,⽽是系统缺少相对应的lib安装lib即可解决。 ​   - 若不是symbolic link 的问题引起,⽽是系统缺少相对应的lib安装lib即可解决。 ​
-  - 如何安装缺少的lib: 以上三个错误讯息为例: +如何安装缺少的lib以上三个错误讯息为例(Ubuntu为例): 
-错误1缺少libc的LIB 错误2缺少libltdl的LIB 错误3缺少libXtst的LIB ​+  错误1缺少libc的LIB ​ 
 +  ​错误2缺少libltdl的LIB ​ 
 +  ​错误3缺少libXtst的LIB ​
   ​   ​
-以Ubuntu为例: ​  先搜寻相对应的LIB再进安装的作业如:+先搜寻相对应的LIB再进行安装,如果在/​usr/​lib的目录下找不到libXtst.so文件,那么就表示系统没有安装libXtst函数库。解决办法\\ 
 apt-cache search libc-dev apt-cache search libltdl-dev ​ apt-cache search libXtst-dev apt-cache search libc-dev apt-cache search libltdl-dev ​ apt-cache search libXtst-dev
-在进⾏输⼊法gcin的Source Code的编译时出现以下的错误讯息: + 
-/​usr/​bin/​ld:​ cannot find -lXtst +apt-get install libxtst-dev 
-经检查后发现是: lib(.so档)的symbolic link 不正确  + 
-解决⽅法如下: +**还有就是在/​etc/​ld.so.conf件中,创建新安装的程序的lib库位置的条⽬,然后使ldconfig来载,这个较容易被忽略**
-''​cd /usr/lib ln -s libXtst.so.6 libXtst.so''​ +
-这⾥不⼀定是/​usr/​lib下,可以查看Makefile⽂件,查找关键字:-lXtst 来确定上下⽂中定义读取lib包的位 置。 +
-  +
-如果在/​usr/​lib的⽬录下找不到libXtst.so 档,那么就表⽰系统没有安装libXtst的函式库。 解法如下:\\ +
-''​apt-get install libxtst-dev''​ +
-  +
-**还有就是在/​etc/​ld.so.conf件中,创建新安装的程序的lib库位置的条⽬,然后使ldconfig来载,这 个较容易被忽略**+
  
编程.1569245752.txt.gz · 最后更改: 2020/02/01 21:40 (外部编辑)