如何在OSX中将C编译为原始二进制文件?

时间:2016-12-18 01:26:55

标签: c macos operating-system freestanding

我正在学习如何从头开始创建操作系统的教程。我正处于需要开始用C编写代码的地步,但我需要在独立模式下将其编译为原始二进制文件。给出的命令是:

gcc -ffreestanding -c kernel.c -o kernel.o
ld -o kernel.bin -Ttext 0x1000 kernel.o --oformat binary

第一个命令有效,第二个命令没有。 OSX的链接器对-Ttext一无所知。没有使用虚拟Linux系统,任何人都知道这种方法吗?一定有办法。

objcopy也不起作用。

1 个答案:

答案 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
}