我使用的是 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
。
关于c++ - 如何在 Linux 中查看 .o 文件的信息和编译器标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14868105/