Самьюэл Алекс
Шрифт:
Затем следует объединить объектные файлы в библиотеку:
Опция
Компоновка совместно используемой библиотеки аналогична компоновке архива. Например, следующая команда подключает к программе файл
Предположим, имеются оба файла:
– ltest
Команда
Когда к программе подключается совместно используемая библиотека, компоновщик помещает в исполняемый файл ссылку на нее, но в этой ссылке указан не полный путь к библиотеке, а только имя файла. При запуске программы система сама находит библиотеку и загружает ее. По умолчанию система просматривает лишь каталоги
Одно из решений заключается в компоновке программы с указанием флага
– ltest -Wl,-rpath,/usr/local/lib
Теперь в случае запуска программы
Но есть и другое решение: устанавливать переменную
9
Иногда в документации упоминается переменная
2.3.3. Стандартные библиотеки
Даже если при компоновке программы не были заданы библиотеки, все равно одна из них почти наверняка присутствует. Дело в том, что компилятор
При компоновке программ, написанных на C++, компилятор
2.3.4. Зависимости между библиотеками
Библиотеки часто связаны одна с другой. Например, во многих Linux-системах есть библиотека
В листинге 2.9 показана небольшая программа, использующая функции библиотеки
При компиляции этого файла необходимо указать флаг
По умолчанию будет скомпонована совместно используемая версия библиотеки: