使用 PCRE 8.40 编译 PHP 7.1.5

使用 PCRE 8.40 编译 PHP 7.1.5

我尝试在旧版 Ubuntu 12.04.05 LTS 上使用 PCRE 8.40 编译 PHP 7.1.5:

1,我将 PCRE 8.40 从源代码编译到 /usr/local/pcre。

2、配置PHP:

./configure --prefix=/usr/local/php7 --with-pcre-regex=/usr/local/pcre --with-pcre-dir=/usr/local/pcre

没有错误。

3、编译PHP:

make

错误:

ext/pcre/.libs/php_pcre.o: In function `zm_globals_dtor_pcre':
/root/php-7.1.5/ext/pcre/php_pcre.c:139: undefined reference to `pcre_jit_stack_free'
ext/pcre/.libs/php_pcre.o: In function `php_free_pcre_cache':
/root/php-7.1.5/ext/pcre/php_pcre.c:113: undefined reference to `pcre_free_study'
ext/pcre/.libs/php_pcre.o: In function `zm_activate_pcre':
/root/php-7.1.5/ext/pcre/php_pcre.c:223: undefined reference to `pcre_jit_stack_alloc'
ext/pcre/.libs/php_pcre.o: In function `pcre_get_compiled_regex_cache':
/root/php-7.1.5/ext/pcre/php_pcre.c:525: undefined reference to `pcre_assign_jit_stack'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

我尝试了一个实验:

./configure --prefix=/usr/local/php7 --disable-all --with-pcre-regex=/usr/local/pcre --with-pcre-dir=/usr/local/pcre

(--disable-all:禁用所有默认启用的扩展。)

make

没有错误,构建完成。

$/usr/local/php7/bin/php -i | grep "PCRE Library Version"
PCRE Library Version => 8.40 2017-01-11

当我尝试不使用 --disable-all 选项时为什么不工作?

答案1

我也遇到了同样的问题。使用编译 PCRE 帮--enable-jit我解决了这个问题。

相关内容