linux运行asm文件,linux – 尝试在Ubuntu上的NASM上运行.asm文件时出错

这看起来可能是由nasm产生的和ld试图做的内容之间的简单的不匹配:

i386 architecture of input file 'hello.o' is incompatible with i386:x86-64 output

换句话说,nasm已经生成了一个32位的对象文件hello.o,ld想要这样做,并且做一个64位的可执行文件.

nasm -hf命令应该给你可用的输出格式:

valid output formats for -f are (`*' denotes default):

* bin flat-form binary files (e.g. DOS .COM, .SYS)

ith Intel hex

srec Motorola S-records

aout Linux a.out object files

aoutb NetBSD/FreeBSD a.out object files

coff COFF (i386) object files (e.g. DJGPP for DOS)

elf32 ELF32 (i386) object files (e.g. Linux)

elf ELF (short name for ELF32)

elf64 ELF64 (x86_64) object files (e.g. Linux)

as86 Linux as86 (bin86 version 0.3) object files

obj MS-DOS 16-bit/32-bit OMF object files

win32 Microsoft Win32 (i386) object files

win64 Microsoft Win64 (x86-64) object files

rdf Relocatable Dynamic Object File Format v2.0

ieee IEEE-695 (LADsoft variant) object file format

macho32 NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (i386) object files

macho MACHO (short name for MACHO32)

macho64 NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (x86_64) object files

dbg Trace of all info passed to output stage

我看到您链接的教程要求您运行:

nasm -f elf hello.asm

尝试使用:

nasm -f elf64 hello.asm

相反,您可能会发现ld停止抱怨输入文件.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值