`
fanrey
  • 浏览: 251929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ldconfig的作用

 
阅读更多

转载:ldconfig是一个动态链接库管理命令

为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfig
ldconfig  命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为  /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.


ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.
ldconfig命令行用法如下:
ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache]
        [-c FORMAT] [--format=FORMAT] [-V] [-?|--help|--usage] path...
ldconfig可用的选项说明如下:
(1) -v或--verbose : 用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字.
(2) -n : 用此选项时,ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib,/usr/lib),也不扫描配置文件/etc/ld.so.conf所列的目录.
(3) -N : 此选项指示ldconfig不重建缓存文件(/etc/ld.so.cache).若未用-X选项,ldconfig照常更新文件的连接.
(4) -X : 此选项指示ldconfig不更新文件的连接.若未用-N选项,则缓存文件正常更新.
(5) -f CONF : 此选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf.
(6) -C CACHE : 此选项指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,此文件存放已排好序的可共享的动态链接库的列表.
(7)  -r ROOT : 此选项改变应用程序的根目录为ROOT(是调用chroot函数实现的).选择此项时,系统默认的配置文件 /etc/ld.so.conf,实际对应的为 ROOT/etc/ld.so.conf.如用-r /usr/zzz时,打开配置文件 /etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf文件.用此选项,可以大大增加动态链接库管理的灵活性.
(8) -l : 通常情况下,ldconfig搜索动态链接库时将自动建立动态链接库的连接.选择此项时,将进入专家模式,需要手工设置连接.一般用户不用此项.
(9) -p或--print-cache : 此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字.
(10) -c FORMAT 或 --format=FORMAT : 此选项用于指定缓存文件所使用的格式,共有三种: ld(老格式),new(新格式)和compat(兼容格式,此为默认格式).
(11) -V : 此选项打印出ldconfig的版本信息,而后退出.
(12) -? 或 --help 或 --usage : 这三个选项作用相同,都是让ldconfig打印出其帮助信息,而后退出.

linux下的共享库机制采用了类似于高速缓存的机制,将库信息保存在/etc/ld.so.cache里边。
程序连接的时候首先从这个文件里边查找,然后再到ld.so.conf的路径里边去详细找。
这就是为什么修改了ld.so.conf要重新运行一下ldconfig的原因
分享到:
评论

相关推荐

    为什么ldconfig后,会自动生成so的软链接 ldconfig就会生成librudp.so软连接

    为什么ldconfig后,会自动生成so的软链接 ldconfig就会生成librudp.so软连接

    浅谈Linux中ldconfig和ldd的用法

    下面小编就为大家带来一篇浅谈Linux中ldconfig和ldd的用法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    cuda报错 OSError: libcudart.so.10.0: cannot open shared object file: No such file

    有时候会碰到cuda报错,OSError: libcudart.so.10.0: cannot open shared object ...ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态

    Linux编程动态库知识

     2.ldconfig一般会创建soname,但不创建linker name(libname.so),后者一般安装库时创建  3.暂时添加动态库目录LD_LIBRARY_PATH,一般用于测试和开发  4.LD_PRELOAD预加载库。用于提前加载,紧急用途,或是...

    高等应用数学问题MATLAB求解2,东北大学,课件,实用!

    高等应用数学问题MATLAB求解2,东北大学,课件,实用!

    Linux的出错

    Linux 的系统安装过程中有的时候容易出错,所以把小的错误归类了一下!

    libstdc++.so.6.0.24 64位分享

    libstdc++.so.6.0.24 64位分享

    libgd相关资源文件

    其作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新搜索路径,需要运行一下ldconfig,使所有的库文件都被缓存到文件...

    centos 6.5 安装 FFmpeg及转码插件

    [root@localhost lame-3.99.5]# ldconfig 安装yasm [root@localhost ffmpeg]# tar -zxvf yasm-1.2.0.gz [root@localhost yasm-1.2.0]# cd yasm-1.2.0 [root@localhost yasm-1.2.0]# ./configure --enable-shared ...

    php zip.so扩展文件

    vi + php.ini ... ln -s /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/xlsxread.so /usr/lib64/xlsxread.so && ldconfig ldconfig /usr/local/lib 和 ldconfig /usr/local/lib64

    树莓派opencv_contrib-3.4.0.0.0.rar

    // 根据下载的版本而定 1,cd opencv // 创建release文件夹 2,mkdir release // 进入release目录下 3,cd release // cmake读入所有源文件之后,自动生成makefile 4,sudo cmake -D CMAKE_... 7,sudo ldconfig

    有毒:基于ncurses的Tox客户端(请在开发叉上发出拉取请求:https:github.comtoktoktoxic)

    Toxic是基于的即时消息和视频聊天客户端。 安装 设定值 首次运行Toxic会在您的家庭配置目录中创建... 如果那不起作用,请运行: echo '/usr/local/lib/' | sudo tee -a /etc/ld.so.conf.d/locallib.conf sudo ldconfig

    ubantu16下的oracle12.1 client安装文件

    sudo ldconfig export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib:$LD_LIBRARY_PATH sudo mkdir -p /usr/lib/oracle/12.2/client64/lib/network/admin tnsnames.ora, sqlnet.ora or oraaccess.xml

    protobuf 2.6.1

    $ sudo ./configure $ sudo make $ sudo make check $ sudo make install $ sudo ldconfig $ protoc --version

    jsoncpp-src-0.5.0.rar

    jsoncpp-src 附安装命令: $ sudo apt-get install rar unrar $ unrar x jsoncpp-src-0.5.0.rar $ cd jsoncpp-src-0.5.0 $ scons platform=linux-gcc ...$ sudo cp ./libs/linux-gcc-7/* /usr/...$ sudo ldconfig

    SIP2SMPP:SIP 到 SMPP 网关

    SIP 到 SMPP 网关 该脚本旨在将 SIP MESSAGE 转换为 SMPP,并将 SMPP 转换...ldconfig 下载并安装支持 GSM7 的 Libiconv: ./configure --prefix=/usr/local make make install ldconfig 下载并安装 LibZDB : ./con

    nginx-lua环境配置

    2、安装Luajit2.0.2 make make install 3、安装nginx export LUAJIT_LIB=/usr/local/lib ...ldconfig 问题: 需要把usr/local/lib中的liblua包映射到/lib目录下面。 ln -s /usr/local/lib/liblua* /lib

    deepstream_sdk_v4.0.1_jetson.tbz2

    deepstream安装包,安装步骤如下: 1 安装依赖: $ sudo apt install \ libssl1.0.0 \ libgstreamer1.0-0 \ ...$ sudo ldconfig 使用教程:https://blog.csdn.net/weixin_43046653/article/details/104799395

    Ubuntu16和Ubuntu18离线安装包ntp

    这个安装包是专门给ubuntu16和ubuntu18时间同步ntp离线安装包。 使用方法: 1.下载后解压; 2.上传到ubuntu指定目录下; 3.直接运行命令安装; 4.可以参考我的博文设置。

Global site tag (gtag.js) - Google Analytics