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