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打印出其帮助信息,而后退出.
分享到:
相关推荐
3. 使用ldconfig命令管理动态链接库。ldconfig命令用来在默认目录和ld.so.conf配置的目录下搜索共享库,并创建或更新动态链接程序ld.so所需的动态链接缓存文件/etc/ld.so.cache。这个文件保存了所有共享库的名字列表...
下面是一个创建动态链接库的基本步骤: 1. **编写用户接口文件**:首先,你需要定义一个头文件(如`share_str_tools.h`),该文件声明了库中对外公开的函数接口。例如,这里定义了一个名为`strtok_all`的函数,用于...
假设我们需要创建一个名为 `hello` 的简单动态链接库,它包含一个函数 `hello()`,该函数接收一个字符串参数并打印出 "Hello !" 的问候语。 1. **定义头文件 `hello.h`:** ```c #ifndef HELLO_H #define HELLO_...
例如,对于一个名为`libfoo.c`的源文件,可以通过以下命令创建名为`libfoo.so`的动态链接库: ``` gcc -shared -o libfoo.so libfoo.c ``` - `gcc`命令中的`-shared`选项指明要创建共享对象。 2. **动态链接库...
标题"理解linux下动态链接库延迟绑定.rar_lib_linux"指向的是Linux系统中动态链接库的一个关键特性——延迟绑定(Lazy Binding)。延迟绑定是一种优化技术,它使得程序在加载时并不立即解析所有对动态链接库的引用,...
总的来说,Linux动态链接库`.so`文件的创建和使用是系统编程中的关键技能,掌握这一技术有助于优化程序性能,实现模块化设计,并有效地管理系统资源。在实际开发中,了解如何创建、管理及使用动态链接库对于提升软件...
`ldd`命令可以查看一个可执行文件依赖的共享库,`ldconfig`用于管理这些库的搜索路径和缓存。 创建和使用动态链接库涉及到编译器选项(如-gcc -shared)和链接器指令(-l库名 -L库路径)。`.so`文件就是共享库的...
- **方法三:利用动态链接库管理命令`ldconfig`**,强制其搜索指定目录,并更新缓存文件,便于动态装入。 **6. 动态库的显式调用** 除了隐式调用之外,还可以使用`dlopen`、`dlsym`等函数显式地打开和使用动态库中...
在Linux下,可以使用`ar`工具创建和管理静态库,`gcc`编译器的`-l`选项用于链接库,`-L`选项指定库的搜索路径。对于动态库,可以使用`gcc`的`-shared`选项创建,`ldd`命令检查程序的动态库依赖,`ldconfig`管理系统...
2. **使用ldconfig命令**:`ldconfig`命令用于更新缓存文件`/etc/ld.so.cache`,从而确保动态链接器能够识别最新的共享库位置信息。这通常是在安装新的共享库或更改了共享库路径后需要执行的操作。 3. **ldd命令**:...
6. **版本管理**:动态库的版本管理也很关键,因为更新一个库可能会影响依赖它的多个应用程序。工具如ldconfig(Linux)用于管理库的查找路径和版本信息。 7. **静态链接与动态链接**:静态链接将所有依赖的库代码...
5. **ldconfig命令**:ldconfig管理系统的动态链接库,创建或更新动态链接库的缓存,确保程序能正确找到所需的库。 6. **ar命令**:ar用于创建、修改和提取归档文件,这些文件通常包含库文件。 7. **set、unset和...
首先,当一个ELF(Executable and Linkable Format)格式的可执行文件尝试运行时,如果它依赖于动态链接库,系统会按照一定的顺序查找这些库。这一搜索顺序主要包括以下几个步骤: 1. **ELF可执行文件中的DT_RPATH...
动态库(Dynamic Link Library,简称DLL或动态链接库)允许你在多个程序间共享代码,节省内存和磁盘空间。下面将详细介绍如何在Qt环境中创建和使用C++动态库。 首先,我们要理解动态库的类型。在Windows上,动态库...
- **/sbin/ldconfig**:这是一个用于重建动态链接器的缓存文件 `/etc/ld.so.cache` 的工具。该文件保存了常用的动态函数库信息,为了提高软件加载动态函数库的速度,系统会优先将这些库加载到内存中,因为内存访问...
例如,`libmylib.so` 是一个动态库文件。 - `.a` 文件:静态库(Static Library),它将所有对象文件打包在一起,每个使用静态库的程序都会包含完整的库代码,可能导致程序体积较大。 2. **动态库的版本管理** - ...
在调试与维护过程中,我们可以通过ldd命令检查程序对libstdc++.so.6的依赖情况,或者使用ldconfig工具管理系统的动态链接库配置。对于开发者来说,了解libstdc++.so.6的工作原理和管理方式,可以帮助我们更好地优化...
在CentOS 7 x86_64平台上,安装GCC 11.0.2这一高级C++编译器时,会依赖一个至关重要的动态链接库——libstdc++.so.6.0.29。本文将深入探讨这个库的作用、它与GCC的关系以及如何在系统中管理和使用它。 libstdc++是...
- `ldconfig`工具:用于维护动态链接库的路径和缓存,确保系统能找到正确的库文件。 - `ldd`命令:检查可执行文件的动态链接信息,显示其依赖的动态库。 - `ls -l`查看文件属性,`-l`选项显示详细信息,包括文件...