zoukankan      html  css  js  c++  java
  • Linux下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)

    在软件编译过程中,经常会碰到类似这样的编译错误:
    /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 修改环境变量

    $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/biosoft/hdf5-1.8.15-patch1/lib/
    修改环境变量 LD_LIBRARY_PATH,加入库文件所在路径。使用 export 命令使修改生效。
    
    $ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/biosoft/hdf5-1.8.15-patch1/lib/' >> ~/.bashrc
    $ source ~/.bashrc
    将上述 export 命令加入到配置文件 ~/.bashrc,使之永久生效。
    
    $ export LIBRARY_PATH=/opt/biosoft/hdf5-1.8.15-patch1/lib/:$LIBRARY_PATH
    若修改变量 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”)

    参考:

     http://jiangwenfeng762.iteye.com/blog/1740325

  • 相关阅读:
    JavaScript文本框焦点事件
    JavaScript实现图片切换
    自定义搭建PHP开发环境
    python基础整理1
    python基础整理2——Linux
    雪花算法(03)生成时间
    雪花算法(02)算法中的位运算
    雪花算法(01)介绍
    ASP.NET控件Repeter的使用
    DNS解析详细过程
  • 原文地址:https://www.cnblogs.com/zzdbullet/p/9725234.html
Copyright © 2011-2022 走看看