Как связать несколько файлов ассемблера для MMIX

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


person fuz    schedule 15.02.2011    source источник


Ответы (2)


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

person Martin Ruckert    schedule 20.05.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 покажет их.

person Jester    schedule 20.02.2011
comment
Мой первоначальный вопрос заключался в том, на что я должен обратить внимание, чтобы сделать это вручную. - person fuz; 21.02.2011