a.out linux可执行文件是哪个程序的?

时间:2013-11-17 12:50:36

标签: c++ c executable

给定一个包含大量文件的当前目录,假设我编译了一个文件并生成了可执行文件 a.out 。现在,我想找到生成此可执行文件的程序。 怎么样,我能做到吗?

2 个答案:

答案 0 :(得分:10)

您可以使用readelf

readelf -a a.out | grep FILE

例如:

$ gcc t.c
$ readelf -a a.out |grep FILE
    28: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS crtstuff.c
    36: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS crtstuff.c
    41: 0000000000000000     0 FILE    LOCAL  DEFAULT  ABS t.c
$ 

或者,您可以使用

objdump -t a.out |grep df

示例:

$ objdump -t a.out |grep df
0000000000000000 l    df *ABS*  0000000000000000              crtstuff.c
0000000000000000 l    df *ABS*  0000000000000000              crtstuff.c
0000000000000000 l    df *ABS*  0000000000000000              t.c

答案 1 :(得分:3)

您可以使用objdump

> objdump -g a.exe

a.exe:     file format pei-i386

crt1.c:
cygming-crtbegin.c:
file.c:
tlssup.c:
CRTglob.c:
CRTfmode.c:
txtmode.c:
CRT_fp10.c:
cpu_features.c:
...