gpt4 book ai didi

c - Mini OS : Linking the compiled & assembled . o 文件

转载 作者:行者123 更新时间:2023-11-30 18:05:28 25 4
gpt4 key购买 nike

我正在尝试根据此页面设置一个工作环境来组装引导加载程序并编译和链接简单的内核:enter link description here

到目前为止,一切都很顺利,但是我似乎无法解决此链接器错误:

C:\Users\----\Desktop\>ld -T linker.ld -o kernel.bin --oformat binary loader.o kernel.o
ld: cannot perform PE operations on non PE output file 'kernel.bin'.

我认为 ld 手册页过于神秘,并且没有对这个特定的错误消息给出任何答案。

(我使用的是 Windows 7 64 位)

最佳答案

我已经阅读了 OSDev 文章中的一些内容,但是是在 Linux 机器上。首先,我应该指出前言的第二句话指出您应该设置 GCC Cross Compiler因为你使用的是 Windows 机器。但我相信您关于 PE 输出文件的错误与 Windows 和 Linux 的 ld 配置方式有关。 Linux使用ELF格式的可执行文件,而Windows使用PE格式。这是表示程序/可执行文件的两种截然不同的方式。对于OSDev教程,您需要以ELF格式链接内核。

如果您遵循有关设置 GCC 交叉编译器的文章,您应该阅读有关构建“binutils”的部分。确保您的目标设置为 i586-elf。继续阅读本文,您应该能够设置链接器 ld 来链接到 ELF 目标而不是 PE 格式。

关于c - Mini OS : Linking the compiled & assembled . o 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6405253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com