动态库管理命令

动态库管理

nm命令

列出目标文件(可执行文件, 对象文件或库文件)的符号

nm [选项] [文件名]
-a # 显示所有符号
-a :显示所有符号,包括默认不显示的符号。 
-C :显示符号的 C++ 名称修饰(demangle)。 
-D :只显示动态符号。 
-g :只显示全局符号。 
-n :按地址排序输出符号。 
-o :在每个符号前加上文件名。
-p :不按地址或名称排序。 
-r :按地址逆序排序。 
-S :显示每个符号的大小。 
-t :指定地址的格式( o表示八进制,x表示十六进制,d 表示十进制)。 
-u :只显示未定义的符号。 
-A :在每个符号前加上文件名(与-o 类似)。

img

strings命令

strings命令,用于从二进制文件、对象文件、可执行文件或其他文件中提取可打印的字符串

strings [选项] [文件名]
-a :扫描整个文件,而不是只扫描可加载的段。这是默认行为,但可以显式指定。 
-t :在每个字符串前打印其偏移量。可以指定偏移量的格式: 
-t d :十进制格式。 -t x :十六进制格式(默认)。 -t o :八进制格式。 
-n :指定最小字符串长度,默认值为 4 个字符。 
-f :在每个字符串前打印其来源文件名。 
-e :指定字符编码,常见的有: -e s :ASCII(默认)。 -e S :UTF-16 大端。 -e l :UTF-16 小端。 -e b :UTF-32 大端。 -e L :UTF-32 小端。 
-o :与-t o  相同,以八进制格式打印偏移量(已废弃)。 
-w :在每个字符串前打印其来源文件名和偏移量。
strings kheaders.ko

ldd命令

ldd打印共享对象依赖

ldd

img

ldd -v

img

ldconfig命令

ldconfig管理动态链接库命令

-v  或  --verbose :显示正在扫描的目录及搜索到的动态链接库,以及所创建的连接的名字。
-n :仅扫描命令行指定的目录,不扫描默认目录,也不扫描配置文件所列的目录。
-N :不重建缓存文件/etc/ld.so.cache。
-X :不更新文件的连接。
-f <conf> :指定动态链接库的配置文件为<conf> ,系统默认为/etc/ld.so.conf。 
-C <cache> :指定生成的缓存文件为<cache>,系统默认为/etc/ld.so.cache。 
-r <root> :改变应用程序的根目录为<root>。
-l :进入专家模式手工设置连接。
-p  或--print-cache:打印出当前缓存文件所保存的所有共享库的名字。 
-c <format>或--format=<format> :指定缓存文件所使用的格式,可选值为ld (老格式)、 new (新格式)和compat(兼容格式,默认值)。
-V :打印出ldconfig的版本信息,然后退出。
-?  或--help或--usage :打印帮助信息,然后退出.
posted @ 2026-06-01 00:20  LemHou  阅读(10)  评论(0)    收藏  举报