博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
/usr/bin/ld: cannot find -lxxx问题总结
阅读量:7098 次
发布时间:2019-06-28

本文共 590 字,大约阅读时间需要 1 分钟。

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

 

转载地址:http://ykhql.baihongyu.com/

你可能感兴趣的文章
React Native系列(6) - 编译安卓私有React-Native代码
查看>>
初探12306售票算法(一)- 理论(转)
查看>>
shell中使用sqlplus及调试相关
查看>>
java.lang.Exception: DEBUG -- CLOSE BY CLIENT STACK TRACE 的理解
查看>>
Python学习【第23篇】:利用threading模块开线程
查看>>
C++之编码问题(Unicode,ASCII,本地默认)
查看>>
字母排序
查看>>
[日常] DNS的迭代查询过程
查看>>
[Linux] Nginx 提供静态内容和优化积压队列
查看>>
Excel VBA 基本概念
查看>>
获取文件Md5值
查看>>
Linux常用命令整理
查看>>
逛论坛时发现 有关 递归调用
查看>>
JavaScript的3大组成部分&&ECMAScript函数&&闭包
查看>>
.NET Core 跨平台发布(dotnet publish)
查看>>
OpenAcc社区版安装教程(Linux版)(更新版)
查看>>
java写入文件的几种方法
查看>>
NGINX模块(一)
查看>>
Linux service命令
查看>>
Linux动态频率调节系统CPUFreq之二:核心(core)架构与API
查看>>