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

C++ 如何在linux中查看.o文件的信息和编译器标志?,c++,boost,command,centos,C++,Boost,Command,Centos,我使用的是CentOS 6.02 64位。我想查看.o文件中的信息和使用的编译器标志。有什么命令或方法可以看到这一点吗?我已经通过使用objdump了解了.a文件的体系结构。但无法查看.o文件的信息 没有从对象文件提取编译器标志的通用方法。您可以通过编译两次(使用和不使用一些无操作开关,如-fverbose asm(只影响asm生成的gcc标志))并比较对象来了解这一点,它们将是相同的。但是,有一些特定于编译器的扩展,允许您在编译过程中插入它们,例如在较新版本的gcc中插入-frecord gc

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

没有从对象文件提取编译器标志的通用方法。您可以通过编译两次(使用和不使用一些无操作开关,如-fverbose asm(只影响asm生成的gcc标志))并比较对象来了解这一点,它们将是相同的。但是,有一些特定于编译器的扩展,允许您在编译过程中插入它们,例如在较新版本的gcc中插入
-frecord gcc开关
,它放置了
.gcc.command.line节中使用的标志。还有不同编译器插入到.comment部分的各种信息,例如使用gcc 4.7.2编译的my compile显示:

$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-s-j.comment
objfile:文件格式elf64-x86-64
第节内容。评论:
0000 0047433A202847 4e552920 342e372e.GCC:(GNU)4.7。
0010 3200                                 2.
当然,使用
objdump-f
可以以与.a文件相同的方式获得体系结构