Instale la extensión mbstring para php8 en centos7 include/php/Zend/zend_signal.h:44:2: error: nombre de tipo desconocido 'siginfo_t'

In file included from /usr/local/php8/include/php/Zend/zend.h:41:0,
                 from /usr/local/src/php-8.1.10/ext/mbstring/libmbfl/mbfl/mbfilter.h:88,
                 from /usr/local/src/php-8.1.10/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c:31:
/usr/local/php8/include/php/Zend/zend_signal.h:44:2: 错误:未知的类型名‘siginfo_t’
  siginfo_t *siginfo;
  ^
In file included from /usr/local/php8/include/php/Zend/zend.h:41:0,
                 from /usr/local/src/php-8.1.10/ext/mbstring/libmbfl/mbfl/mbfilter.h:88,
                 from /usr/local/src/php-8.1.10/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c:31:
/usr/local/php8/include/php/Zend/zend_signal.h:95:77: 警告:‘struct sigaction’在形参表内部声明 [默认启用]
 ZEND_API void zend_sigaction(int signo, const struct sigaction *act, struct sigaction *oldact);
                                                                             ^
/usr/local/php8/include/php/Zend/zend_signal.h:95:77: 警告:它的作用域仅限于此定义或声明,这可能并不是您想要的 [默认启用]
make: *** [libmbfl/filters/mbfilter_htmlent.lo] 错误 1

Cómo verificar si el compilador de PHP es compatible con la API de procesamiento de señales estándar POSIX

Puede verificar si su compilador PHP es compatible con la API de manejo de señales estándar POSIX ejecutando el comando `php -i` en la línea de comando.

Ingrese el siguiente comando en la línea de comando:

php -i | grep 'System V IPC\|POSIX'

Si la salida contiene `System V IPC => Yes` y `POSIX => Enabled`, significa que el compilador de PHP ya es compatible con System V IPC y la API de procesamiento de señal estándar POSIX. Si no hay salida o la salida no contiene la información anterior, es posible que su compilador no admita estas API.

Además, si está utilizando una distribución de Linux basada en un administrador de paquetes apt como Ubuntu o Debian, puede ejecutar el siguiente comando para verificar si las bibliotecas libsigsegv-dev y libpcre3-dev se han instalado en el sistema:

dpkg -s libsigsegv-dev libpcre3-dev

Si se ha instalado la biblioteca, se mostrará la información relevante; de ​​lo contrario, se le indicará que no se encontró el paquete.

 

 La prueba profesional es factible:

1. Antes de volver a operar, asegúrese de ejecutar

make clean

2.

/usr/local/php8/bin/phpize

 ./configure --with-php-config=/usr/local/php8/bin/php-config

修改Makefile文件第26行,
 vi Makefile

CFLAGS = -std=c99 -g -O2 #试了好几次这个不好使,用下边的-std=gnu99好了

CFLAGS =  -std=gnu99 -g -O2

make

make install

Supongo que te gusta

Origin blog.csdn.net/lxw1844912514/article/details/131082888
Recomendado
Clasificación