.o对象文件的格式是什么?
一段时间以来,我一直在学习低级内容,我对PE文件以及它们的工作方式非常熟悉。但是我无法找到其前体.o
文件的任何文档。我正在寻找对它们的实际字节结构进行深入研究。
.o
文件的格式取决于什么?甚至是平台具体的吗?也许是针对编译器的?在哪里可以找到.o
文件的文件格式的文档?最感兴趣的Windows。
I've been learning low-level stuff for a while now and I'm quite familiar with PE files and how they work. But I've been unable to find any documentation of their precursor .o
files. I'm looking for a deep-dive on the actual byte-by-byte structure of them.
What does the format of .o
files depend on? Is it even platform specific at all? Perhaps compiler-specific? Where can I find documentation on the file format of .o
files? Mostly interested in Windows.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
.o
使用Windows(mingw)时,由GCC和LLVM生成的文件是COFF文件(请参阅 https://wiki.osdev.org/coff )。在某些其他平台上,使用了精灵格式。Windows PE格式(用于
.dll
和.exe
文件)是Coff格式的子集。.o
files as produced by GCC and LLVM when using Windows (MinGW) are COFF files (see https://wiki.osdev.org/COFF). On certain other platforms the ELF format is used.The Windows PE format (used for
.dll
and.exe
files) is actualy a subset of the COFF format.