可执行文件里都是机器码加一些调试信息,看不到头文件信息的。
你说的生成包含头文件的列表确实是有,是gcc的选项,‘-M’,必须在编译时给出。比如说你要看temp.c应用了什么头文件,可以如下使用:
$ gcc -M -c temp.c
temp.o: temp.c /usr/include/stdio.h /usr/include/features.h \
/usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \
/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/bits/wchar.h /usr/include/gconv.h \
/usr/lib/gcc/i386-redhat-linux/4.1.1/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
它还有几个子选项,-MM等,可以自己man gcc看看。