#c #c #assembly #operating-system #fasm
#c #c #сборка #операционная система #fasm
Вопрос:
Итак, я разрабатываю ОС, и на данный момент я писал код только на ассемблере. Я хочу продолжать делать это с C / C . Компилятор / редактор, который я использую, — FASM (для Windows). Я пытался использовать с ним MinGW, но при связывании файла fasm .o он выдает ошибку. Как я могу продолжить разработку как с ассемблером, так и С / C ? Кроме того, я много искал в Интернете, но не нашел решения.
Редактировать: это пакетный файл make, который я использую:
cls
echo off
fasm.exe los.asm losasm.o
pause
cls
"C:MinGWbingcc.exe" -nostdlib los.cpp -o loscpp.o
pause
cls
"C:MinGWbingcc.exe" -o "C:UsershelderDesktopLemperyum OperativeSystem Ilos" -o -nostdlib losasm.o loscpp.o
pause
cls
pause
Комментарии:
1. Какого рода ошибки?
2. Файл @user3553031 не распознан.
3. В сторону: по какой-либо причине вы не используете
make
или что-то подобное для сборок? (GNU Make доступен как часть mingw, вероятно, уже установлен.)
Ответ №1:
FASM ориентирован на генерацию исполняемых файлов непосредственно в качестве выходных данных, по умолчанию используется «плоский двоичный вывод» (см. Руководство). Для создания объектных файлов необходимо использовать один из параметров командной строки
format COFF
илиformat ELF
То, что вы выберете, зависит от других инструментов. Навскидку, я не уверен, какой тип файла выводит MinGW.