解决/usr/bin/ld: cannot find -lxxx
通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的ld检索目录中。
解决方式:
1。确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 如果只是存在lib123.so.1,
那么可以通过ln -sv lib123.so.1 lib123.so,建立一个连接重建lib123.so.
2。检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入。
3。ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的
库文件导入ld.so.cache.
4。测试,gcc -l123 --verbose.
===================================================
意思是编译过程找不到对应库文件。其中,-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 更新缓存。
转载于:https://blog.51cto.com/crocodile/964277
解决/usr/bin/ld: cannot find -lxxx相关推荐
- 解决usr/bin/ld: cannot find -lxxx问题
linux下编译应用程序常常会出现如下错误: /usr/bin/ld: cannot find -lxxx 意思是编译过程找不到对应库文件.其中,-lxxx表示链接库文件 libxxx.so. 注:有 ...
- 解决 /usr/bin/ld:cannot find -lxxx 问题
编译软件时,经常遇到/usr/bin/ld:cannot find -lxxx报错,其报错原因就是gcc在搜索路径下找不到xxx库文件. 1. 问题分析 楼主在编译软件时,出现了如下报错: ```ba ...
- 转载 :make报错:/usr/bin/ld: cannot find -lXXX
/usr/bin/ld: cannot find -lxxx问题总结 linux下编译应用程序常常会出现如下错误: /usr/bin/ld: cannot find -lxxx 意思 ...
- 【转】关于usr/bin/ld: cannot find -lxxx问题总结
原文网址:http://eminzhang.blog.51cto.com/5292425/1285705 /usr/bin/ld: cannot find -lxxx问题总结 linux下编译应用程序 ...
- java中flist cannot_关于usr/bin/ld: cannot find -lxxx问题总结
linux下编译应用程序常常会出现如下错误: /usr/bin/ld: cannot find -lxxx 意思是编译过程找不到对应库文件.其中,-lxxx表示链接库文件 libxxx.so. 注:有 ...
- Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的通用解决方法
Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的通用解决方法 参考文章: (1)Linux系统中提示/usr/bin/ld: cannot find -lxxx错 ...
- /usr/bin/ld: cannot find -lxxx错误的通用解决方法
Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的通用解决方法 在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息,代码如下: ...
- linux查看ld文件,Linux下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)
/usr/bin/ld: cannot find -lhdf5 这表示找不到库文件 libhdf5.so,若是其它库文件,则是 cannot find -lxxx 了,其中 xxx 是库文件的名字. ...
- 【Bugfix系列】/usr/bin/ld: cannot find -lxxx 的解决办法
DATE:2021.9.23 文章目录 1.前言 2.参考 3.解决方案 3.1.安装此库文件和相关软件 3.2.将库文件所在路径添加到gcc的搜索路径 3.2.1.使用 /etc/ld.so.con ...
最新文章
- 安装esp8266库_基于ESP8266,DIY低成本智能远程开关灯小装置
- WPF 4 Ribbon 开发 之 应用程序菜单(Application Menu)
- 结构体的嵌套 自身嵌套 相互嵌套
- 线性代数相关知识点回顾
- Python自建collections模块
- 将Redis集成到您的Spring项目中
- C++实现简单走迷宫的代码
- java 获取date的时分秒_Java Date获取 年月日时分秒
- Introduction to Computer Networking学习笔记(二十八):DNS
- oracle jde优势介绍,JDE 的扫盲知识介绍。。。
- 智能家居教程:基于机智云物联网开发平台的智能门锁v1.0(APP)
- DedeCMS 栏目三级联动树形菜单的代码
- FFFfrance博客介绍
- 设计原则之依赖倒转原则
- 世界坐标系(WCS)和用户坐标系UCS
- 主成分分析实战篇:南极考察站检测数据降维
- (DDS)正弦波形发生器——幅值、频率、相位可调(一)
- Texlive配置华文新魏字体
- 拯救行动(变种bfs)
- DataFactory快速生成测试数据
热门文章
- unity发布Android按钮灰色,Unity3d应用中的Android菜单按钮
- SAS中修改一个表为编辑模式的时候不成功并给出警告的原因及解决办法
- element-ui组件中的input等的change事件中传递自定义参数
- Cannot find module 'less-bundle-promise'
- python基础-基础知识(包括:函数递归等知识)
- C#操作SQL Server数据库
- jsp学习札记————参数传值
- textview根据文字行数自动变化大小
- 常用SQL语句(增删查改、合并统计、模糊搜索)
- 代码意识流——花朵数问题(七)