Ада-95. Компилятор GNAT



         

Создание Ада-библиотеки - часть 2


и последующего использования утилиты GNU make, или путем создания скрипта для командного интерпретатора.

В случае построения простой библиотеки, можно создать фиктивную головную программу, которая зависит от всех интерфейсных пакетов библиотеки.

В последствии, такая фиктивная головная программа может быть представлена утилите gnatmake, в результате чего gnatmake выполнит построение всех объектных файлов библиотеки.

Ниже показан пример подобной фиктивной головной программы и общий вид команд, которые могут быть использованы для построения единого библиотечного архива объектных файлов или динамически загружаемой библиотеки.

with My_Lib.Service1; with My_Lib.Service2; with My_Lib.Service3; procedure My_Lib_Dummy is

begin

null; end;

# компиляция библиотеки $ gnatmake -c my_lib_dummy.adb

# нам не нужен объектный код фиктивной головной программы $ rm my_lib_dummy.o my_lib_dummy.ali

# создание единого библиотечного архива $ ar rc libmy_lib.a *.o # some systems may require "ranlib" to be run as well

# или создание динамически загружаемой библиотеки $ gnatgcc -shared -o libmy_lib.so *.o # некоторые системы могут требовать, чтобы компиляция выполнялась с опцией -fPIC

При группировке объектных файлов библиотеки в единый библиотечный архив или динамически загружаемую библиотеку пользователь должен указывать требуемую библиотеку на этапе компоновки проекта или использовать директиву компилятора pragma Linker_Options

в одном из файлов с исходными текстами:

pragma Linker_Options ("-lmy_lib");




Содержание  Назад  Вперед