Вы должны указать системе сборки связываться с общей библиотекой во время компиляции.Это позволяет сохранить зависимость в скомпилированном расширении PHP, где она будет загружена при первом использовании.
Для этого вам нужно изменить config.m4
, чтобы добавить библиотеку.Вы можете сделать это с помощью макроса PHP_ADD_LIBRARY
.Этот макрос добавляет библиотеку в строку ссылки и имеет вид PHP_ADD_LIBRARY($name,$append,$var)
.Первый параметр - это имя библиотеки;это имя файла *.so
без префикса lib
(например, xxx
).Второй параметр определяет (я предполагаю), является ли строка добавленной или перезаписанной;обычно это должно быть установлено на 1
.Последний параметр - это имя переменной, в которой хранится строка.Эту переменную необходимо подставить в выходной файл с помощью PHP_SUBST
.
Вы должны поместить строку PHP_ADD_LIBRARY
где-то перед макросом PHP_NEW_EXTENSION
в файле config.m4
.Кроме того, это хорошая идея - обернуть PHP_ADD_LIBRARY
в вызов PHP_CHECK_LIBRARY
.Это гарантирует, что библиотека может быть найдена системой сборки перед ее добавлением.См. Мой пример ниже.
Здесь - еще один вопрос, похожий на ваш.Здесь есть несколько рабочих примеров, которым вы можете следовать.Кроме того, я приведу здесь небольшой пример:
PHP_CHECK_LIBRARY(xxx,xxxfunction,[
PHP_ADD_LIBRARY(xxx,1,XXX_SHARED_LIBADD)
],[
AC_MSG_ERROR([Please install libxxx on the system])
],
[])
PHP_SUBST([XXX_SHARED_LIBADD])
Примечание. Второй параметр PHP_CHECK_LIBRARY
- это функция, для которой система сборки проверяет, находит ли данная библиотека.