linux – 如何在我的64位机器上使用gcc编译32位.o文件?

试图学习NASM大会.我有一台64位机器,带有Ubuntu.最近我决定测试推送和弹出指令.我这样做:

nasm -felf64 Test.asm

显然,在64位模式下不支持它们.好吧,没问题,我只需要做到32:

nasm -felf Test.asm

现在,一如既往

gcc Test.o

但它现在告诉我

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

我不太明白这里的错误.如果显然我无法编译32位程序,如何在64位机器上测试push和pop?

解决方法:

“-m32”怎么样?
我认为你需要关心依赖库(例如libc),参见:Use 32bit shared library from 64bit application?

上一篇:linux – int 0x80是否覆盖寄存器值?


下一篇:nasm汇编linux计时器或睡眠