Я пытаюсь обновить PHP на моем Mac. Я скачал PHP 5.4.14 и у меня нет проблем с командой настройки:
./configure \ --prefix=/usr \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --sysconfdir=/private/etc \ --with-apxs2=/usr/sbin/apxs \ --enable-cli \ --with-config-file-path=/etc \ --with-libxml-dir=/usr \ --with-openssl=/usr \ --with-kerberos=/usr \ --with-zlib=/usr \ --enable-bcmath \ --with-bz2=/usr \ --enable-calendar \ --with-curl=/usr \ --enable-dba \ --enable-exif \ --enable-ftp \ --with-gd \ --with-freetype-dir=/usr/X11 \ --with-jpeg-dir=/BinaryCache/apache_mod_php/apache_mod_php-66.6~1/Root/usr/local \ --with-png-dir=/usr/X11 \ --enable-gd-native-ttf \ --with-icu-dir=/usr \ --with-iodbc=/usr \ --with-ldap=/usr \ --with-ldap-sasl=/usr \ --with-libedit=/usr \ --enable-mbstring \ --enable-mbregex \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --without-pear \ --with-pdo-mysql=mysqlnd \ --with-mysql-sock=/var/mysql/mysql.sock \ --with-readline=/usr \ --enable-shmop \ --with-snmp=/usr \ --enable-soap \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --with-tidy \ --enable-wddx \ --with-xmlrpc \ --without-iconv \ --with-xsl=/usr \ --enable-zip \ --with-pcre-regex=/usr \ --with-pgsql=/usr \ --with-pdo-pgsql=/usr
Когда я делаю make test
Я получаю длинную кучу вещей со следующим:
Undefined symbols for architecture x86_64: "_php_pcre_compile", referenced from: _pcre_get_compiled_regex_cache in php_pcre.o "_php_pcre_exec", referenced from: _php_pcre_grep_impl in php_pcre.o _php_pcre_replace_impl in php_pcre.o _php_pcre_match_impl in php_pcre.o _php_pcre_split_impl in php_pcre.o _check_fmt in softmagic.o _php_filter_validate_email in logical_filters.o _php_filter_validate_regexp in logical_filters.o ... "_php_pcre_free", referenced from: _php_pcre_match_impl in php_pcre.o "_php_pcre_fullinfo", referenced from: _pcre_get_compiled_regex_cache in php_pcre.o _php_pcre_grep_impl in php_pcre.o _make_subpats_table in php_pcre.o _php_pcre_replace_impl in php_pcre.o _php_pcre_match_impl in php_pcre.o _php_pcre_split_impl in php_pcre.o "_php_pcre_get_substring_list", referenced from: _php_pcre_match_impl in php_pcre.o "_php_pcre_maketables", referenced from: _pcre_get_compiled_regex_cache in php_pcre.o "_php_pcre_study", referenced from: _pcre_get_compiled_regex_cache in php_pcre.o "_php_pcre_version", referenced from: _zm_info_pcre in php_pcre.o _zm_startup_pcre in php_pcre.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [libs/libphp5.bundle] Error 1
Я обновил PCRE в системе до версии 8.32, и мне это требуется из-за некоторых зависимостей zlib среди других вещей и общих вещей с регулярными выражениями perl. Я в недоумении, почему мой make test
не пройдет.
Любая помощь будет оценена, чтобы решить эту проблему.
apache-http-server
php
osx-lion
Mike Kormendy
источник
источник
--with-pcre-regex=shared,/usr
, Вам может понадобитьсяmake clean
первый.checking for PCRE headers location... configure: error: Could not find pcre.h in shared,/usr
shared,/path
опция позволяет расширениям использовать предустановленную библиотеку системы. Для PCRE--with-prec-refex
мой не нужен поскольку PCRE включен в php-5.3 +. Где установлен PCRE-8.32? Вы можете найти его, выполнивpcre-config --prefix
и использовать обратный путь в качестве--with-prec-refex
аргумент.--with-pcre-regex
и посмотреть, если это работает.Ответы:
Опция 1
Просто удалите
--with-pcre-regex
опции. Современная версия PHP поставляется с библиотекой PCRE (находится в ext / pcre / pcrelib) и считается частью базовой сборки PHP.От php.net ,
Вариант 2
Как указано выше, вы можете собрать PHP с внешней библиотекой PCRE. Для этого обновил
--with-pcre-regex
опция со значением, возвращаемымpcre-config --prefix
,источник