- 主题:问一个MinGW编译a文件的问题
在linux下面,a文件其实是.o文件打了一个包,解压缩就可以看到里面的.o文件,然后这个.o文件是ELF的.
然而,我在win下面,用MinGW,也编译了一对库,生成了.a文件,我同样将其解压缩,也得到了一堆.o文件.
按照之前的想法,这个时候的.o文件,应该是PE格式的.
但是很遗憾,我找了一个PE reader(NikPEViewer.exe)试了一下,说不是PE格式, DOS signature is missing.
用二进制编辑器打开,也看不到开头的magic number.
那问题来了
1. 这个.o到底是什么?
2. 如果我拿objdump查看,确实看到这个.o文件是的格式是file format pe-x86-64,那他为什么没有magic number呢
3. 既然,在win下面都需要遵守PE规定,那么为什么MinGW编出来的东西的扩展名不按照win的dll,lib来呢
--
修改:lobachevsky FROM 1.202.141.*
FROM 1.202.141.*
怎么可能兼容,只有exe是兼容。
连vc不同版本生成的.o,.lib .dll都不完全兼容。
【 在 lobachevsky 的大作中提到: 】
: 在linux下面,a文件其实是.o文件打了一个包,解压缩就可以看到里面的.o文件,然后这个.o文件是ELF的.
:
: 然而,我在win下面,用MinGW,也编译了一对库,生成了.a文件,我同样将其解压缩,也得到了一堆.o文件.
: ...................
--来自微微水木3.5.12
--
FROM 39.144.43.*
PE(Portable Executable),看英文就知道这个格式是给exe文件用的
【 在 lobachevsky 的大作中提到: 】
: 在linux下面,a文件其实是.o文件打了一个包,解压缩就可以看到里面的.o文件,然后这个.o文件是ELF的.
: 然而,我在win下面,用MinGW,也编译了一对库,生成了.a文件,我同样将其解压缩,也得到了一堆.o文件.
: 按照之前的想法,这个时候的.o文件,应该是PE格式的.
: ...................
--
FROM 114.253.36.*
dll也是PE格式的
【 在 roy 的大作中提到: 】
: PE(Portable Executable),看英文就知道这个格式是给exe文件用的
:
--
FROM 1.202.141.*