int*_*tar 5 c c++ unix static-libraries
链接器可能会这样做,所以是否有一个命令行工具列出目标文件中的函数并告诉我函数及其签名的名称?
对于共享库,您必须使用:
nm -D /path/to/libwhatever.so.<num>
Run Code Online (Sandbox Code Playgroud)
没有-D,nm转储调试符号; -D指实际用于动态链接的动态符号.来自Ubuntu 12会话:
$ nm /lib/i386-linux-gnu/libc.so.6
nm: /lib/i386-linux-gnu/libc.so.6: no symbols
$ nm -D /lib/i386-linux-gnu/libc.so.6 | tail
0011fc20 T xdr_wrapstring
001202c0 T xdrmem_create
00115540 T xdrrec_create
001157f0 T xdrrec_endofrecord
00115740 T xdrrec_eof
00115690 T xdrrec_skiprecord
00120980 T xdrstdio_create
00120c70 T xencrypt
0011d330 T xprt_register
0011d450 T xprt_unregister
Run Code Online (Sandbox Code Playgroud)
在这个系统libc.so上剥离了调试符号,因此nm没有显示任何内容; 但当然有动态链接机制的符号显示nm -D.
对于.a存档或.o目标文件,只需nm.符号是符号; 如果这些文件被剥离,则这些对象不能用于链接.
| 归档时间: |
|
| 查看次数: |
1614 次 |
| 最近记录: |