Ubuntu下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Ubuntu下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2431字,纯文字阅读大概需要4分钟。
内容图文
![Ubuntu下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)](/upload/InfoBanner/zyjiaocheng/972/7262ac27b15f4f4b8e6b2e2f3d5f3c09.jpg)
在软件编译过程中,经常会碰到类似这样的编译错误:
/usr/bin/ld: cannot find -lhdf5
这表示找不到库文件 libhdf5.so,若是其它库文件,则是 cannot find -lxxx 了,其中 xxx 是库文件的名字。
解决方法有:
1. 安装此库文件和相关软件
一般库文件属于某个软件,google搜索该软件并安装,或者使用 yum 安装。
2. 将库文件所在路径添加到gcc的搜索路径
使用以下命令查询gcc能否搜寻到指定的库文件:
$ gcc -lhdf5 --verbose
查询库文件 libhdf5.so 是否能在搜索路径中找到。
若安装了软件,找到了库文件的路径。但是依然会提示上述错误。则表示gcc的搜索路径不包含该库文件所在的路径。将库文件所在的路径加入到搜寻路径中的方法为:
2.1 使用 /etc/ld.so.conf 配置文件
将库文件所在的路径加入到 /etc/ld.so.conf 尾部,并使之生效:
$ sudo echo '/opt/biosoft/hdf5-1.8.15-patch1/lib/' >> /etc/ld.so.conf
libhdf5.so 在路径 /opt/biosoft/hdf5-1.8.15-patch1/lib/ 下,将该路径加添加到配置文件中
$ sudo ldconfig
运行该命令,重新载入 /ext/ld.so.conf 中的路径,使修改生效。
2.2 修改环境变量
$ echo 'export LD_LIBRARY_PATH=/opt/biosoft/hdf5-1.8.15-patch1/lib/:$LD_LIBRARY_PATH' >> ~/.bashrc
$ source ~/.bashrc
将上述 export 命令加入到配置文件 ~/.bashrc,使之永久生效。
$ echo 'export LIBRARY_PATH=/opt/biosoft/hdf5-1.8.15-patch1/lib/:$LIBRARY_PATH' >> ~/.bashrc
$ source ~/.bashrc
若修改变量 LD_LIBRARY_PATH 不奏效,则修改变量 LIBRARY_PATH 。
转自:https://www.cnblogs.com/zhming26/p/6164131.html
-------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------
下面这种方法我没有尝试
通常在软件编译时出现的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.
这里的123为对应的库名称,123只是个例子不是mode
2.3 编译方法
gcc -o test test.c -l(库名称:去掉“lib”)
参考
https://blog.csdn.net/z735640642/article/details/86172151
内容总结
以上是互联网集市为您收集整理的Ubuntu下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)全部内容,希望文章能够帮你解决Ubuntu下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。