Я пытаюсь установить libgit2 и php-git. Я успешно скачал и собрал libgit2.Однако я сталкиваюсь с проблемой при попытке установить php-git.
Вот как я пытаюсь установить его:
phpize
./configure --enable-git2-debug
make
make install
Там нет проблем с phpize. Однако, когда я использую make и make install, отображаются следующие ошибки:
./php_git2.h:180:3: error: unknown type name 'git_smart_subtransport'
git_smart_subtransport *smart_subtransport;
./helper.h:58:42: error: unknown type name 'git_checkout_opts'; did you mean 'git_checkout_options'?
void php_git2_git_checkout_opts_to_array(git_checkout_opts *opts, zval **out TSRMLS_DC);
/usr/local/include/git2/checkout.h:295:3: note: 'git_checkout_options' declared here
} git_checkout_options;
^~~~~~~~~~~~~~~~~
./helper.h:62:41: error: unknown type name 'git_checkout_opts'; did you mean 'git_checkout_options'?
int php_git2_array_to_git_checkout_opts(git_checkout_opts **out, zval *array TSRMLS_DC);
^~~~~~~~~~~~~~~~~
git_checkout_options
и есть еще ошибки. Почему это происходит?
Эти ошибки указывают на то, что заголовочные файлы для libgit2 не соответствуют версии, которую ожидают PHP-привязки.
Привязки имеют свою собственную версию libgit2, которую они связывают статически, поэтому ей не нужно / не нужно использовать версию, установленную в системе, но именно здесь читаются заголовочные файлы (как указано путями в выходных данных).
Похоже, это ошибка в php-git, что он читает системные заголовочные файлы для libgit2, но это корень проблемы. Привязки не хотят, чтобы вы установили libgit2 в вашей системе. Если вам не нужна система libgit2 для других целей, ее устранение должно решить проблему.
Вы должны сообщить об ошибке в проект php-git, так как она не работает, если в системе установлена версия libgit2, что является ошибкой системы сборки в ее коде.
Я должен был быть более ясным. Похоже, он не находит libgit2.