C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了assembly – gnu链接器:文件无法识别大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的makefile:

obj =init3.o initfunc.o descriptor.o disk.o

init:$(obj)
     ld -o init.out $(obj)

init3.o:init3.asm
        nasm -f aout init3.asm

initfunc.o:initfunc.asm
        nasm -f aout  initfunc.asm

descriptor.o:../lib/descriptor.asm
    nasm -f aout  ../lib/descriptor.asm

disk.o:../drive/disk.asm
    nasm -f aout  ../drive/disk.asm

他们编译完全没有错,但是当链接器开始链接时,出现错误文件无法识别:文件格式无法识别.
然后我使用-f elf将每个文件更改为elf格式,错误仍然存​​在,我用谷歌搜索GUN链接器确实识别.out格式,那么我的代码有什么问题?

解决方法

FWIW:在重新运行make之前删除你的.o文件.调整编译器标志后很容易忘记这一点. (我正在谈论经验……)

说明:调整makefile不会强制执行重新编译(除非你将makefile本身指定为makefile中每个规则的依赖项;这可能不是一个坏主意).您有可能一遍又一遍地链接相同的旧对象文件.

大佬总结

以上是大佬教程为你收集整理的assembly – gnu链接器:文件无法识别全部内容,希望文章能够帮你解决assembly – gnu链接器:文件无法识别所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。