编译时常出现缺少库的问题以及解决方案
2013-11-21 16:07
423 查看
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指令定位到链接文件,查看链接文件是否正确的指向了我们希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。
如果是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在目录写进去,然后在终端输入 ldconfig 更新缓存。
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-07/64814.htm
/usr/bin/ld: cannot find -lxxx意思是编译过程找不到对应库文件。其中,-lxxx表示链接库文件 libxxx.so。
注:有时候,由于库文件是编译过程临时生成的,如果前面出错也会导致出现这种情况,下面针对的是由于本机系统环境缺失而引起的。
一般出现这种错误有以下几种原因:
1.系统缺乏对应的库文件;
2.版本不对应;
3.库文件的链接错误;
4.库文件路径设置问题;
对应第一第二种情况,可以通过下载安装lib来解决,Ubuntu大多数可以直接通过apt-get来安装:
apt-get install libxxx-dev
一般遇到这种问题笔者第一时间也是会去检查系统是否已安装该lib或者是否已选择正确版本(只是习惯问题),如果还是不能解决问题,那么,引起错误的原因不是链接错误就是库文件路径问题了。
通过find指令定位到链接文件,查看链接文件是否正确的指向了我们希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。
如果是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在目录写进去,然后在终端输入 ldconfig 更新缓存。
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-07/64814.htm
相关文章推荐
- 【PHP】编译安装 PHP5.6.13遇到问题以及解决方案
- 关于VS编译出现“从不是创建控件 control name 的线程访问它”问题的解决方案
- iis 经常出现的问题以及解决方案
- 解决Linux下Qt编译出现"cannot find -lGL"以及无法安装libgl1-mesa-dev的问题
- linux 下python3的安装与编译,以及scrapy出现sqlite3错误的解决方案
- 关于Android Studio 更新到3.0版本以后出现的一些问题以及解决方案
- VS2005+DirectX 9平台配置出现的问题以及解决方案--Game Scripting Mastery
- notepad++ c++ python 编译环境中出现的问题及部分解决方案
- 【图文】Ubuntu系统源码方式编译安装node.js以及express安装出现找不到命令的问题
- Android NDK编译时出现的问题以及解决办法
- fedora下PAE扩展 以及virtualbox编译出现的问题的解决方法。
- Nginx+Tomcat+pcre 安装过程和出现的问题以及解决方案
- 更新Xcode6.0.1之后,编译出现Use of undeclared identifier 'GL_BGRA_EXT'问题及解决方案
- Eclipse下LogCat打印信息瞬间消失了,以及byte数组转字符串是出现多余的空格问题的解决方案(随手小笔记)
- 使用Mingw在Windows下编译出现的问题以及解决办法
- 使用gyp构建项目,使用ninja更快的编译,以及使用出现和解决的问题记录
- ubuntu安装ghc遇到的问题 缺少编译库libgmp.so.3: cannot open shared object file: No such file解决方案
- vs2013 编译libevent以及出现的问题
- 编译MVC解决方案老出现这个问题的原因
- cocos2d-x 在IDE vs2010 出现error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面)编译错误解决方案