【发布时间】:2013-01-29 20:35:43
【问题描述】:
我使用的是 CentOS 6.02 64 位。我想查看 .o 文件中的信息和使用的编译器标志。有什么命令或方法可以看到吗?我已经通过使用 objdump 看到了 .a 文件的体系结构。但看不到 .o 文件的信息。
【问题讨论】:
我使用的是 CentOS 6.02 64 位。我想查看 .o 文件中的信息和使用的编译器标志。有什么命令或方法可以看到吗?我已经通过使用 objdump 看到了 .a 文件的体系结构。但看不到 .o 文件的信息。
【问题讨论】:
没有从目标文件中提取编译器标志的通用方法。您可以通过使用和不使用诸如 -fverbose-asm (仅影响 asm 生成的 gcc 标志)之类的无操作开关进行两次编译并比较对象来看到这一点 - 它们将是相同的。然而,有一些编译器特定的扩展允许您在编译期间插入它们,例如-frecord-gcc-switches 在较新版本的 gcc 中,它放置了 .GCC.command.line 部分中使用的标志。不同的编译器还会在 .comment 部分插入各种信息,例如我用 gcc 4.7.2 编译显示:
$objdump -s -j.comment <objfile>
objfile: file format elf64-x86-64
Contents of section .comment:
0000 00474343 3a202847 4e552920 342e372e .GCC: (GNU) 4.7.
0010 3200 2.
您当然可以使用与 .a 文件相同的方式获取架构,使用 objdump -f。
【讨论】: