objdump 不适用于 ELF 64 位 x86-64,

objdump not working on ELF 64-bit x86-64,

我有一个来自 Tiny C 编译器的 64 位 ELF 目标代码。我无法让 gobjdump 显示反汇编代码。我正在使用 OS X 10.10.5.

$ file hello.o 
hello.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
$ gobjdump -d hello.o
gobjdump: hello.o: File format not recognized

$ greadelf -h hello.o
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              REL (Relocatable file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x0
  Start of program headers:          0 (bytes into file)
  Start of section headers:          228 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           0 (bytes)
  Number of program headers:         0
  Size of section headers:           64 (bytes)
  Number of section headers:         7
  Section header string table index: 6

额外信息:

$uname -a
Darwin Nawals-MacBook-Air.local 14.5.0 Darwin Kernel Version 14.5.0: 

Tue Sep  1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64

$ gobjdump -i
BFD header file version (GNU Binutils) 2.24
mach-o-x86-64
mach-o-i386
mach-o-le
mach-o-be
mach-o-fat
pef
pef-xlib
sym
srec
symbolsrec
verilog
tekhex
binary
ihex

我不明白为什么堆栈溢出认为我的问题主要是代码 - 我想提供尽可能多的信息来帮助人们回答。我不认为 pastebin 等人。在这里受到鼓励。

根据手册页,可用的输出格式如下:

  -Wl,--oformat,fmt
       Use fmt as output format. The supported output formats are:

       "elf32-i386"
           ELF output format (default)

       "binary"
           Binary image (only for executable output)

       "coff"
           COFF output format (only for executable output for TMS320C67xx
           target)

因此,尽管网上声称支持 x86-64,但最新版本不支持目标文件的 x86-64 输出