首页 / 知识
关于c ++:如何列出.so文件中的符号
2023-04-13 15:22:00

How do I list the symbols in a .so file如何列出从.so文件导出的符号? 如果可能的话,我也想知道它们的来源(例如,如果它们是从静态库中引入的)。 我正在使用gcc 4.0.2,如果这有所不同。
列出符号的标准工具是
如果要查看C ++库的符号,请添加"-C"选项,该符号对符号进行解码(它的解码性更强)。
如果您的.so文件是elf格式,您有两种选择:
或者使用
如果
您只应提取在此
或者,正如Caspin所建议的那样:
对于共享库libNAME.so,在我的Linux中查看符号需要-D开关
以及其他人报告的静态库
我一直想知道为什么-fvisibility = hidden和#pragma GCC可见性似乎没有任何影响,因为所有的符号总是用nm显示 - 直到我发现这篇帖子指向readelf和objdump,这让我意识到那里似乎实际上是两个符号表:
我认为前者包含可以使用strip剥离的调试符号或者可以为链接器或install命令提供的-s开关。即使nm不再列出任何内容,导出的符号仍会导出,因为它们位于ELF"动态符号表"中,后者是后者。
对于C ++
来源:https://stackoverflow.com/a/43257338
对于Android 尝试将-l添加到nm标志以获取每个符号的来源。如果使用调试信息(gcc -g)编译库,则应该是源文件和行号。正如Konrad所说,此时对象文件/静态库可能是未知的。
您可以使用binutils工具链中的
/编辑:工具的名称当然是
nm -g列出extern变量,这不是必需的导出符号。 nm -D将列出动态表中的符号,您可以通过dlsym找到它的地址。 nm --version GNU nm 2.17.50.0.6-12.el5 20061020 如果您只想知道是否有符号存在,您可以使用
或列出调试信息
|
最新内容
相关内容
linux改文件权限命令?
linux改文件权限命令?,系统,工具,档案,权限,文件,信息,命令,目录,选项,用户,在linux系统中修改文件权限使用的命令是在 Linux 中,要更改一个文linux命令联想工具?
linux命令联想工具?,地址,工作,系统,工具,状态,标准,信息,命令,目录,左下角,Linux:Python编写Linux自定义命令工具首先我们先认识一下cat指令linux命令交换文件名?
linux命令交换文件名?,命令,文件,数据,名称,工具,地址,软件,系统,基础知识,文件名,linux中用什么命令移修改文件夹名1、linux下使用mv命令来移linux改变文件所有者的命令?
linux改变文件所有者的命令?,系统,工具,文件,命令,信息,名称,用户组,用户,所有者,权限,linux修改文件权限?打开linux系统,在linux的桌面的空白linux下替换文件命令?
linux下替换文件命令?,文件,一致,评论,名称,标的,资料,工作,命令,字符串,内容,linux替换原来文件的命令方法1:sed -i s/被替换的内容/要替换成linux文件nl命令?
linux文件nl命令?,地址,工作,信息,系统,情况,标准,实时,对比,百度,命令,linux查看日志命令第一种:查看实时变化的日志(比较吃内存)。最常用的:taillinux寻找文件夹命令?
linux寻找文件夹命令?,名称,命令,文件,位置,工作,标准,目录,子目录,文件名,字符串,linux文件夹查询命令有哪些less命令,less命令的功能几乎和molinux跳到文件尾命令?
linux跳到文件尾命令?,系统,文件,命令,管理,状态,实时,末尾,光标,内容,编辑,linux复制第1,2,3行数据到文件末尾sed -n 4,$p file.txt$匹配文件linux把文件复制命令?
linux把文件复制命令?,名字,文件,软件,系统,位置,目录,命令,源文件,目标,文件夹,在Linux中,要将指定源文件复制到目标文件,但不覆盖原有文件时linux文件夹合并命令?
linux文件夹合并命令?,文件,对比,第一,下来,命令,文件夹,两个,字段,内容,数组,在linux下我有两个文件夹w1,w2,怎样把它们合并到一个文件夹1、linux下文件创建命令?
linux下文件创建命令?,名字,名称,首次,命令,文件,系统,密码,文件名,文件夹,目录,Linux虚拟机命令如何创建新的文件和文件夹首先,连接相应linuxlinux命令行安装文件?
linux命令行安装文件?,软件,官网,密码,中心,电脑,文件,命令,终端,指令,版本,Linux中怎么安装文件1、在安装jdk的过程中有时会遇到安装bin结尾