如何在linux中查看.o文件的信息和编译器标志

How to see the informations and compiler flags for .o files in linux?

本文关键字:文件 信息 标志 编译器 linux      更新时间:2023-10-16

我使用的是CentOS 6.02 64位。我想在.o文件中查看信息和使用的编译器标志。有什么命令或方法可以看到吗?我已经通过使用objdump看到了.a文件的体系结构。但无法查看.o文件的信息。

没有从对象文件中提取编译器标志的通用方法。您可以通过编译两次来看到这一点,编译时可以使用和不使用一些非操作开关,如-fverbose asm(只影响asm生成的gcc标志),并比较对象-它们将是相同的。然而,有一些编译器特定的扩展允许您在编译过程中插入它们,例如,在较新版本的gcc中的-frecord-gcc-switches,它放置了.GCC.command.line部分中使用的标志。注释部分还插入了不同编译器的各种信息,例如我使用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.

当然,您可以使用objdump -f以与.a文件相同的方式获得体系结构。