我正在学习如何从头开始创建操作系统的教程。我正处于需要开始用C编写代码的地步,但我需要在独立模式下将其编译为原始二进制文件。给出的命令是:
gcc -ffreestanding -c kernel.c -o kernel.o
ld -o kernel.bin -Ttext 0x1000 kernel.o --oformat binary
第一个命令有效,第二个命令没有。 OSX的链接器对-Ttext一无所知。没有使用虚拟Linux系统,任何人都知道这种方法吗?一定有办法。
objcopy也不起作用。
答案 0 :(得分:1)
我使用自制软件下载了GNU utils,并使用了gobjcopy。我从这里得到了下载信息: https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/
我只是将所有installatoin命令粘贴到.sh文件中并运行它。
我在安装后最终使用的命令是:
mov ah,0ffh
mov al,' '
int 10h
}
void main(void)
{
StartVidScreen(); // Start Video Screen
}