Как разрабатывать как с ассемблером, так и С / C на FASM?

#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.