如何查看 .o 文件中的符号?nm 对我不起作用。我使用 g++/linux。
问问题
100555 次
5 回答
114
取而代之的是nm
,你可以使用强大的objdump
。有关详细信息,请参见手册页。尝试objdump -t myfile
或objdump -T myfile
。使用该-C
标志,您还可以像这样对 C++ 名称进行分解nm
。
于 2010-10-07T11:05:25.310 回答
15
您是否一直在为另一个平台使用交叉编译器?如果是这样,您需要使用相应的nm
或命令objdump
。
例如,如果您曾经XXX-YYY-gcc
编译过 .o 文件,则需要使用XXX-YYY-nm
或XXX-YYY-objdump
处理这些文件。
于 2010-10-07T11:35:06.547 回答
6
有一个命令可以查看目标文件或库或可执行文件中包含哪些函数:
nm
于 2010-10-07T10:58:06.787 回答
6
赶紧跑: nm you_obj_file.o | c++filt
于 2016-12-30T02:20:06.243 回答
2
您可以使用nm -C .o/lib/exe
,例如:
xiongyu@ubuntu:~/tmp/build$ nm -C libfile1.a
file1.cpp.o:
0000000000000000 T f()
0000000000000000 W int fun<int>(int)
使用nm -C
它将更具可读性,如果您只使用nm
:
xiongyu@ubuntu:~/tmp/build$ nm libfile1.a
file1.cpp.o:
0000000000000000 T _Z1fv
0000000000000000 W _Z3funIiET_S0_
正如我们所见,它的可读性不强。
下面是我file1.cpp
喜欢的:
xiongyu@ubuntu:~/tmp/build$ vi ../file1.cpp
#include "head.h"
void f() {
int i = fun<int>(42);
}
于 2018-09-29T01:59:29.610 回答