如何查看目标文件中的符号?

时间:2010-10-07 10:55:01

标签: c++ linux g++ object-files

如何查看.o文件中的符号? nm对我不起作用。我用g ++ / linux。

5 个答案:

答案 0 :(得分:76)

您可以使用强大的nm代替objdump。有关详细信息,请参见手册页。试试objdump -t myfileobjdump -T myfile。使用-C标志,您还可以解析C ++名称,例如nm

答案 1 :(得分:11)

您是否曾在其他平台上使用交叉编译器?如果是,则需要使用相应的nmobjdump命令。

例如,如果您使用XXX-YYY-gcc编译.o文件,则需要使用XXX-YYY-nmXXX-YYY-objdump来处理文件。

答案 2 :(得分:5)

有一个命令可以查看目标文件或库或可执行文件中包含哪些函数:

nm

答案 3 :(得分:5)

只需运行:nm you_obj_file.o | c++filt

答案 4 :(得分:1)

您可以使用 writeToFile() ,例如:

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