ОК, это оказалось большой болью, но я нашел это.
Привязка к Florist доступна как в виде общей библиотеки, так и статической (обе установлены).Вам необходимо создать ссылку на библиотеку, чтобы разрешить все ссылки (я никогда не смог бы скомпилировать исходный код библиотеки в свое приложение).После того, как вы передадите аргумент, чтобы сообщить стадии компиляции о библиотеке, вы должны предоставить .ads (как минимум) файлы для разрешения.
Окончательное решение закончилось так:
gnatmake -aI/usr/share/ada/adainclude/florist -aO/usr/lib/ada/adalib/florist demo.adb -largs -lflorist
-aI
предоставляет путь к рекламным файлам библиотеки.-aO
предоставляет путь к (в данном случае) файлу библиотеки libflorist.so и, наконец (и это сложно), вы должны передать -lflorist
, чтобы сказать ему, что это за общая библиотека ... но передавая еене сработаетВы должны поместить -largs
перед ним (для компиляции и компоновщика), чтобы фаза компиляции передавала параметр!Без этого эти фазы никогда не увидят аргумента!
Так что вы все!Чтобы скомпилировать и связать код с общей библиотекой Ada в Linux (GCC), вам необходимо предоставить заголовки / спецификации библиотеки, расположение библиотеки и аргумент -llibname вместе с -largs, чтобы передать их в нужные места!
Теперь я счастлив.Надеюсь, это поможет кому-то еще.