2016-12-18 4 views
0

Im после учебника о том, как создать ОС с нуля. Я нахожусь в точке, где мне нужно начинать писать код на C, но мне нужно скомпилировать его в свободном режиме для сырого двоичного файла. Приведенные команды:Как скомпилировать C в исходный двоичный файл в OSX?

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

Первая команда работает, вторая - нет. Компонент OSX ничего не знает о -Ttext. Кто-нибудь знает об этом без использования виртуальной Linux-системы? Должен быть способ.

objcopy тоже не работает.

+3

Я не знаю, почему вы думаете, что должен быть способ. Apple не поощряет подобные вещи. Где вы планируете запускать эту программу? Вы рассмотрели возможность компиляции GNU BinUtils в/для macOS (Mac OS X)? Я не пробовал это недавно; Я не помню, пробовал ли я это в прошлые времена или нет. –

+0

Спасибо, я заглянул в него –

ответ

0

Я загрузил GNU utils с помощью homebrew, и у меня была гобикопия, которую я использовал. Я получил информацию о загрузке отсюда: https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/

Я только что вставил все команды installatoin в файл .sh и запустил его.

Команды Я закончил с использованием после установки были:

gcc -ffreestanding -c kernel.c -o kernel.o 
gobjcopy -O binary kernel.o kernel.bin