Я работаю над программой (для реального реального режима), которая загружается загрузчиком по адресу в памяти, переходит к нему и начинает выполнение программы.Проблема в том, что у меня есть проект, разделенный на два файла: a.asm (16-битный asm, синтаксис NASM) и bc (который я компилирую с gcc для dos (djgpp)).Кроме того, bc использует некоторые функции из библиотеки allegro (у меня это как статическая библиотека, .a).
Мой вопрос: как мне скомпилировать и связать эти 3 файла вместе?Моей первой мыслью было:
- Скомпилировать и собрать bc с помощью gcc (с флагом -c), в результате я получаю bo файл
- Сборка a.asm с NASM (-fbin или ..?) И получите ao
- Link bo , ao и allegro.a для получения чистого двоичного файла (без заголовков .exe, без отладочной информации и т. д.)
Я попробовал описанный выше подход, но на шаге 3 компоновщиквыдает ошибку, говорящую о том, что формат ao (объектный файл, сгенерированный NASM), не распознается, и это может быть вызвано тем, что я не вызываю правильные флаги и параметры при сборке файла, или ..
Мне бы хотелось получить несколько советов о том, как решить эту проблему.
Спасибо.