`
fanrey
  • 浏览: 255014 次
  • 性别: 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`的作用。`ldconfig`的主要任务是维护`/etc/ld.so.cache`文件,这个文件包含了系统默认搜索路径下所有动态链接库的路径信息。当系统启动或者新安装了动态链接库时,运行`ldconfig`可以...

    浅谈Linux中ldconfig和ldd的用法

    作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。 示例:查看test程序运行所依赖的库: /opt/app/todeav1/test$ldd test libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x...

    libgd相关资源文件

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

    linux 查看程序运行找不到库的问题(设置环境变量)

    首先,我们需要理解`LD_LIBRARY_PATH`这个环境变量的作用。它是Linux动态链接器在查找动态库时会参考的一个路径列表。如果程序运行时需要的库不在默认的系统路径(如`/lib`和`/usr/lib`)里,就需要将其路径添加到`...

    linux动态链接的基本知识

    #### 二、动态链接器的作用与特点 动态链接器(ld-linux.so.2)是Linux系统中用于处理动态链接的核心组件。当一个程序需要访问共享库中的函数或数据时,动态链接器会自动地将这些共享库加载到内存中,并将程序引用...

    最新CertInside 050-710题库分享

    扩展分区的作用就是容纳一个或多个逻辑分区。 - **B. 主分区由连续的磁盘柱面组成。** 这也是正确的。主分区通常占据磁盘上的连续空间。 - **C. 逻辑分区不要求连续的空间。** 正确。逻辑分区可以分布在磁盘的不同...

    curl-nss-http2-debug-64.tar.gz

    让我们详细探讨这些组件以及它们在Linux环境中的作用。 1. **curl**:这是一个强大的命令行工具,用于传输数据,支持多种协议如HTTP、HTTPS、FTP等。它广泛用于脚本和自动化任务,可以发送HTTP请求并获取响应。在这...

    libsigar-amd64-linux.so

    在CentOS 8上安装OpenOffice的过程中,`libsigar-amd64-linux.so`这个动态链接库文件起着至关重要的作用。 `libsigar-amd64-linux.so`是System Information Gatherer and Reporter (SIGAR)库的一个组成部分,它由...

    linux:apr-util安装包 apr-util-1.5.2.tar.gz

    本文将详细讲解如何在Linux上安装`apr-util-1.5.2.tar.gz`这个安装包,以及它在Apache服务器和其他相关应用中的作用。 首先,理解APR-Util的作用是至关重要的。它包含了多种实用功能,如哈希表、队列、字符串处理...

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

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

    liweilib.tar.gz-lib目录下全部的动态库文件

    我们将深入探讨动态库的工作原理、作用以及如何管理和使用这些库。 1. **动态库的原理与类型**: - 动态链接库(.so文件):在Linux系统中,动态库的扩展名为`.so`,如`libfoo.so`。在程序运行时,系统会根据程序...

    libncurses.so.5和libtinfo.so.5文件

    总之,解决MySQL安装中`libncurses.so.5`和`libtinfo.so.5`缺失的问题需要理解这些库文件的作用,选择合适的解决方案,并按照指导正确执行。在处理系统依赖性问题时,了解Linux包管理和动态链接库的工作原理至关重要...

    openssl-1.1.1t版本安装包

    6. **更新链接**:更新系统中的OpenSSL链接,通常使用`ldconfig`命令:`sudo ldconfig` 7. **验证安装**:通过`openssl version`命令检查是否成功安装1.1.1t版本。 **三、安全配置建议** 1. **配置强壮的密码哈希...

    libaio.zip安装包

    libaio在MySQL中的作用主要体现在以下几个方面: - **性能提升**:libaio允许MySQL在读取和写入数据时避免传统的阻塞式I/O,减少了等待I/O操作完成的时间,提高了并发处理能力。 - **资源优化**:通过异步I/O,...

    kscope1.6_need_lib.tar.gz

    3. **更新库缓存**:运行`sudo ldconfig`命令,使系统知道新添加或修改的库文件。 4. **尝试重新启动kscope1.6**:完成上述操作后,kscope1.6应该能正常启动了。如果仍然存在问题,可能需要检查系统的环境变量设置...

    centos7 升级 expat2.5

    6. **配置系统**:更新系统的动态链接库(`ldconfig`),使系统知道新的Expat库位置:`sudo ldconfig`。 7. **测试升级**:重新启动之前停止的服务,确认它们能正常运行,并使用`ldd`命令检查相关程序是否正确链接...

    libvdpau-1.1.1.tar.gz

    sudo ldconfig ``` 三、libvdpau的使用 libvdpau库通常被多媒体播放器(如VLC、MPlayer等)和视频解码库(如FFmpeg)所使用。开发者可以通过调用libvdpau的API,将硬件解码功能集成到他们的应用中。以下是一些...

    jmagick 软件、安装说明(window和linux两个版本)

    4. 更新`ldconfig`缓存,运行`sudo ldconfig`。 5. 设置环境变量`JMAGICK_HOME`指向JMagick的安装目录。 6. 测试安装,通过编写并运行Java程序来调用JMagick。 **3. 使用JMagick进行图像处理** JMagick提供了多种...

    Linux和Unix下的动态库和静态库编写方法

    库分为静态库和动态库,它们在程序编译和运行过程中起着至关重要的作用。本文将详细讲解这两种库的编写方法,以及如何在实际项目中应用它们。 **一、静态库** 1. **创建静态库** 静态库的文件扩展名为`.a`,在...

    从源码编译安装.txt

    #### 三、环境变量的设置与作用 在源码编译安装过程中,有几个重要的环境变量需要注意: 1. **PKG_CONFIG_PATH**: - 该环境变量用于指定 pkg-config 应该搜索的路径。如果软件依赖于某些库,但这些库不在默认的...

Global site tag (gtag.js) - Google Analytics