93

.oファイルのシンボルを表示するにはどうすればよいですか?nmは私には機能しません。私はg++/linuxを使用しています。

4

5 に答える 5

114

の代わりにnm、強力なを使用できますobjdump。詳細については、manページを参照してください。objdump -t myfileまたはを試してくださいobjdump -T myfile。フラグを使用すると、-CC++名をデマングルすることもできます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 に答える