区分由 cl.exe (Visual Studio C++) 生成的 32 位和 64 位 PE 目标文件
Distinguish a 32bit from a 64bit PE object file generated by cl.exe (Visual Studio C++)
给定来自 cl.exe
的两个 PE 目标文件,一个 32 位和一个 64 位,我如何区分一个与另一个 而不使用 求助于 unix 实用程序,最好是在命令行(cmd.exe 或 powershell)?
C:\> "...\VC\bin\cl.exe" -c test.c -Fotest32.obj
C:\> "...\VC\bin\x86_amd64\cl.exe" -c test.c -Fotest64.obj
如果我安装 msys2,file
实用程序可以理解它:
$ file test*.obj
test32.obj: Intel 80386 COFF object file, not stripped, 3 sections, [...]
test64.obj: data
file --version
是 5.28,但较新的 5.25 并没有做得更好。 msys2 不提供 objdump.exe
,但当复制到 Linux 时,它可以正确区分这两个文件:
$ objdump -a test64.obj
test64.obj: file format pe-x86-64
$ objdump -a test32.obj
test32.obj: file format pe-i386
比 file
做得更好并且可以通过 msys2 的 pacman 获得的东西可能也很有趣。
给定来自 cl.exe
的两个 PE 目标文件,一个 32 位和一个 64 位,我如何区分一个与另一个 而不使用 求助于 unix 实用程序,最好是在命令行(cmd.exe 或 powershell)?
C:\> "...\VC\bin\cl.exe" -c test.c -Fotest32.obj
C:\> "...\VC\bin\x86_amd64\cl.exe" -c test.c -Fotest64.obj
如果我安装 msys2,file
实用程序可以理解它:
$ file test*.obj
test32.obj: Intel 80386 COFF object file, not stripped, 3 sections, [...]
test64.obj: data
file --version
是 5.28,但较新的 5.25 并没有做得更好。 msys2 不提供 objdump.exe
,但当复制到 Linux 时,它可以正确区分这两个文件:
$ objdump -a test64.obj
test64.obj: file format pe-x86-64
$ objdump -a test32.obj
test32.obj: file format pe-i386
比 file
做得更好并且可以通过 msys2 的 pacman 获得的东西可能也很有趣。