当我使用命令“nasm -f elf -l hello.lst hello.asm”时,我正在使用NASM汇编程序,但是当与gcc“gcc -o hello hello.o”链接时,它会生成一个错误:
hello.asm 🙁 .text + 0x4):重定位被截断为适合:R_386_16对`.data'collect2:ld返回1退出状态
我了解到,这是gcc和16位的一些问题
任何解决scheme
Linux甚至没有16位的子系统 – 即使你有gcc链接它,你仍然无法执行它! 你为什么不使用.bits 32
?
几年前和今年我都面临同样的情况。
处理这个问题的两种方法是:
我总是最终做2,但我应该花时间写一个链接器(或修补GNU IDD …)。