Как связать несколько файлов ассемблера для MMIX - PullRequest
2 голосов
/ 16 февраля 2011

Предположим, я написал небольшую библиотеку, реализующую что-то вроде "fprint". Книга, которая учит меня MMIX (Das MMIX-Buch, немецкий), всегда копирует всю библиотеку в новую программу, но мне не нравится этот подход. Есть ли способ собрать библиотеку в один объектный файл, основную программу в другой и связать их вместе? Как это сделать?

Ответы [ 2 ]

1 голос
/ 20 мая 2011

Проверьте репозиторий mmix www.mmix.cs.hm.edu. В папке примеров есть два примера: Hello World GNU, шаг за шагом описывает, как получить и использовать инструменты GNU, скомпилировать и связать hello.s (ассемблер). ) или hello.c, связанный с библиотекой C, и второй пример: запуск MMIX в MMIX, который связывает воедино исполняемый файл MMIX для MMIX из разных файлов c, а также связывание нескольких файлов ассемблера и библиотеки C для реализации файловой системы fat32 для MMIX. , Мартин

0 голосов
/ 21 февраля 2011

Согласно тому, что я узнал из короткого поиска в Интернете, инструменты mmix используют обычные пакеты gcc и binutils. Поэтому я ожидаю, что несколько объектных файлов и даже стандартные статические библиотеки будут «просто работать». Интересно, с какой именно проблемой вы столкнулись.

gcc -c lib.c -o lib.o
gcc -c main.c -o main.o
gcc lib.o main.o -o program

РЕДАКТИРОВАТЬ: очевидно, аналогично для источников asm, просто используйте расширение .s или .S. Конечно, вы можете использовать соответствующие команды ассемблера и компоновщика, которые gcc также использует за кулисами. Опция командной строки -v покажет их.

...