静态库是一种包含了一组目标文件的归档文件,它在链接时会被整体连接到最终的可执行文件中。如果使用nm命令查看一个静态库文件中的符号表,也有可能会出现“No symbols”的提示。这时候,我们可以尝试先使用ar命令将静态库文件解压缩成目标文件的集合,然后再使用nm命令来查看具体的目标文件的符号表。 总的来说,出现“...
51CTO博客已为您找到关于linux下nm的用法的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及linux下nm的用法问答内容。更多linux下nm的用法相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
可执行文件也可以看。如果可执行文件被strip过,可能没有符号:nm -a /usr/bin/test nm: /usr/bin/test: no symbols 试试用-D看动态加载的符号:nm -D /usr/bin/test ...U __ctype_b_loc U __ctype_get_mb_cur_max U __cxa_atexit U __errno_location U __fpending U __fprint...
不是C语言吧?是系统命令。用来列举object文件(比如编译出的a.out)的symbols.用法是:nm [-a|--debug-syms] [-g|--extern-only][-B] [-C|--demangle[=style]] [-D|--dynamic][-S|--print-size] [-s|--print-armap][-A|-o|--print-file-name][-n|-v|--numeric-sort] [-p...
nm: a.out: no symbols [taoge@localhost learn_strip]$ 通过ls -l 命令可知, a.out的大小是2980个字节, 大大减小; 通过file命令可知, a.out是可执行文件, 且是stripped, 也就是说衣服被脱了; 通过nm命令, 发现a.out中的符号没有了。 由此可见, strip用于脱掉文件的衣服, 文件会变小, 其中的符号信息...
linkage symbols, and are visible in the --syms output. --start-address=address 从指定地址开始显示数据,该选项影响-d、-r和-s选项的输出。 --stop-address=address 显示数据直到指定地址为止,该选项影响-d、-r和-s选项的输出。 --syms -t 显示文件的符号表入口。类似于nm -s提供的信息 ...
Display only defined symbols for each object file 示例讲解 好了,上述就是常用的命令参数,光说不练假把式,下面将给出一个示例来进一步理解nm用法: 示例代码: #include<iostream>#include<string>usingnamespacestd;constchar*str="downey";intg_uninit;intg_val=10;voidfunc1(){int*val=newint;staticintval...
nm是最出名的工具之一,它可以列出二进制文件、对象文件或者共享库中的符号,在指定二进制文件的时候,nm默认会尝试解析静态符号表。 $ nm lib5ae9b7f.so nm: lib5ae9b7f.so: no symbols 但遗憾的是,如本例所示,你没有办法在lib5ae9b7f.so上使用nm的默认配置,因为文件已经被剥离了。此时你需要使用-D选项...
nm命令属于GNU binutils的功能,能够输出可执行文件的符号表。它的用法是这样的: 代码语言:javascript 复制 用法:nm[选项][文件]列举[文件]中的符号(默认为 a.out)。 The options are:-a,--debug-syms Displaydebugger-only symbols-A,--print-file-name Print nameofthe input file before every symbol-BSamea...
~/test$ nm a.outnm: a.out: no symbols 发现什么符号都没有了,但还是可以执行。 strip后的可执行程序文件大小是6120字节: -rwxrwxrwx1aa6120Nov29 14:54a.out 由此可见通过strip我们可以减少程序的体积。 strip的作用是什么? 前面已经大体介绍过,strip最大的作用就是可以减少程序的体积,一般公司对发布的程...