Как я могу создать статическую библиотеку в NASM и связать с GCC? - PullRequest
2 голосов
/ 03 января 2012

Я хотел бы реализовать ряд функций в (32-битном) NASM, которые имеют следующую подпись:

int function1();
int function2();

и т.д..

Затем я хочу создать объектный файл и иметь возможность статически связать его с программой на C ++, скомпилированной с помощью gcc. Я ищу пример реализации функции, которая возвращает int, любой дополнительный код, необходимый для экспорта символов, и командную строку для NASM, чтобы создать .a-файл, на который я могу ссылаться статически. Заранее спасибо.

1 Ответ

2 голосов
/ 03 января 2012

Ассемблер выведет объектный файл, просто используйте его при компоновке (я не помню параметров NASM, поэтому не пробуйте это дословно - что-то вроде nasm foo.asm -o foo.o; g++ -o prog foo.o bar.cpp).

Статические библиотеки - это не более чем модные архивы (отсюда расширение .a) объектных файлов. binutils имеет утилиту ar, если вы действительно хотите упаковать отдельный объект в архив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...