apples.ads
чем-то напоминает заголовок в C, и он определенно нужен для компиляции вашего файла.Вы должны использовать -I
, чтобы указать gcc на каталог, в котором находится apples.ads
.
Помните, что компиляция источника Ada не только дает объектный файл, но и информацию библиотеки Ada (.ali
) файл.Это понадобится вам для следующего шага.Вы не должны использовать флаг -o
, поскольку это может привести к тому, что ваши .o
и .ali
файлы будут иметь разные имена.
С другой стороны, поскольку вы хотите создать только объектный файл, вам следуетиспользуйте -c
, чтобы указать gcc только компилировать.В других языках, таких как C, gcc компилирует и ссылки по умолчанию;в Аде процесс более сложный.
После компиляции вам нужно вызвать gnatbind
в файле .ali
вашей основной программы.Это создает пакет, который позаботится о правильной инициализации всего.Для этого gnatbind
нужен файл .ali
пакета Apples
!Вы можете указать .ali
каталог поиска с помощью -aO
.
Наконец, gnatlink
, вызываемый в основном файле .ali
, свяжет все вместе.Он сам определяет, какие объектные файлы и библиотеки ему нужны.Он добавит необходимые параметры к компоновщику, включая ссылку на libapples.a
.Он также компилирует пакет, сгенерированный gnatlink
.
Я не знаю точно, что gnatlink
сделает под капотом;Вы могли бы, вероятно, скомпилировать пакет, сгенерированный gnatbind
вручную, а затем вызвать компоновщик, если сможете найти правильные аргументы.