Как связать объектный файл, сгенерированный из кода C, статической библиотеки и сгенерированного NASM объектного файла? - PullRequest
0 голосов
/ 25 апреля 2018

Я работаю над программой (для реального реального режима), которая загружается загрузчиком по адресу в памяти, переходит к нему и начинает выполнение программы.Проблема в том, что у меня есть проект, разделенный на два файла: a.asm (16-битный asm, синтаксис NASM) и bc (который я компилирую с gcc для dos (djgpp)).Кроме того, bc использует некоторые функции из библиотеки allegro (у меня это как статическая библиотека, .a).

Мой вопрос: как мне скомпилировать и связать эти 3 файла вместе?Моей первой мыслью было:

  1. Скомпилировать и собрать bc с помощью gcc (с флагом -c), в результате я получаю bo файл
  2. Сборка a.asm с NASM (-fbin или ..?) И получите ao
  3. Link bo , ao и allegro.a для получения чистого двоичного файла (без заголовков .exe, без отладочной информации и т. д.)

Я попробовал описанный выше подход, но на шаге 3 компоновщиквыдает ошибку, говорящую о том, что формат ao (объектный файл, сгенерированный NASM), не распознается, и это может быть вызвано тем, что я не вызываю правильные флаги и параметры при сборке файла, или ..

Мне бы хотелось получить несколько советов о том, как решить эту проблему.

Спасибо.

...