Linux下的库操作工具-nm、ar、ldd、ldconfig和ld.so

本文详细介绍了Linux环境下常用的开发工具,包括nm、ar、ldd、ldconfig和ld.so的功能及用法。nm用于列出文件中的所有符号,ar用于操作存档文件,ldd列出运行所需的共享库,ldconfig决定共享库的链接,ld.so作为动态链接器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、nm [options] file 列出file中的所有符号

[option]

 -c   将符号转化为用户级的名字

 -s   当用于.a文件即静态库时,输出把符号名映射到定义该符号的模块或成员名的索引

 -u   显示在file外定义的符号或没有定义的符号

 -l   显示每个符号的行号,或为定义符号的重定义项

2、ar {dmpqrtx} [member] archive file 用于操作高度结构化的存档文件(.a)

[options]

-c    创建存档文件

-s    创建或升级从符号到定义他们的成员之间的交叉索引映射表

-r    替换archive中的同名文件或添加新文件

-q    不检查而直接添加文件到存档文件的末尾

ranlib [-v|-V] file 的作用跟ar -s file相同

3、ldd [options] file 列出file运行所需的共享库

[options]

-d    执行重定位并报告所有丢失的函数

-r    执行对函数和对象的重定位并报告丢失的任何函数或对象

4、 ldconfig [options] [libs] 决定位于目录/usr/lib和/lib下的共享库所需的运行的链接,这些链接由[libs]指定并被保存到/etc/ld.so.conf中

[options]

-p    打印文件/etc/ld.so.conf的内容

-v    更新/etc/ld.so.conf

5、 ld.so 动态链接/加载器

ld.so使用的两个环境变量

$LD_LIBRARY_PATH 告诉ld.so去哪里查找保存在非标准目录下的共享库,冒号分隔,对应文件/etc/ld.so.conf

$LD_PRELOAD告诉ld.so用户指定的在所有库加载之前加载的库所在的目录,空格分隔,对应文件/etc/ld.so.preload

http://blog.chinaunix.net/uid-22780578-id-4008731.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值