.o 文件怎么打开?

How to open .o file?

编译一个C程序后,你得到一个.o文件。我知道这是一个由“0”和“1”组成的文件,如果是在成功编译程序后形成的。 但是我想看看文件里有什么!

这里有几个选择。

首先(也是最简单的)是使用某种东西来解码文件以向您展示它是什么。 linux 上的 objdump 就是这样做的。

gcc -c test.c

给你test.o

objdump -D test.o

将解码文件并在标准输出上向您显示其中的内容(因此将其传输到 less 或 similar) Objdump 输出显示未链接的目标文件。地址无效,必须由链接器修复。
格式是 首先是行号 然后是 cpu 指令的一些字节数,这些显示在 hexadecimal.eg 中 14 表示 00010100 接下来是这些字节代表的指令

   0:   14 00                   adc    [=12=]x0,%al

所以上面我们有函数的第 0 行 - 它是未链接的) 14 00 - 这些是字节 他们的意思是将进位 0 添加到 al 寄存器,将结果存储在 al

另一种方法是使用十六进制编辑器,在没有任何帮助的情况下尝试计算出 14 00 的含义。

祝你好运。

您可以从终端使用 hexdump 命令来显示内容。

语法: $ hexdump <filename>.o

它将以 hexadecimal 形式显示内容。