php8.0添加ext扩展遇到报错

使用php8.0 composer安装laravel的时候遇到错误提示:

发现fileinfo没有安装。

第一步:下载php8.x 的安装包;

第二步:解压进入到ext里面,选择fileinfo目录;

第三步:phpize

第四步:./configure –with-php-config=/www/server/php/80/bin/php-config

第五步:make

结果报错了,报错如下 :

/bin/sh /root/php-8.0.6/ext/fileinfo/libtool –mode=compile cc -I. -I/root/php-8.0.6/ext/fileinfo -I/root/php-8.0.6/ext/fileinfo/include -I/root/php-8.0.6/ext/fileinfo/main -I/root/php-8.0.6/ext/fileinfo -I/www/server/php/80/include/php -I/www/server/php/80/include/php/main -I/www/server/php/80/include/php/TSRM -I/www/server/php/80/include/php/Zend -I/www/server/php/80/include/php/ext -I/www/server/php/80/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -I/root/php-8.0.6/ext/fileinfo/libmagic -c /root/php-8.0.6/ext/fileinfo/libmagic/funcs.c -o libmagic/funcs.lo
cc -I. -I/root/php-8.0.6/ext/fileinfo -I/root/php-8.0.6/ext/fileinfo/include -I/root/php-8.0.6/ext/fileinfo/main -I/root/php-8.0.6/ext/fileinfo -I/www/server/php/80/include/php -I/www/server/php/80/include/php/main -I/www/server/php/80/include/php/TSRM -I/www/server/php/80/include/php/Zend -I/www/server/php/80/include/php/ext -I/www/server/php/80/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -I/root/php-8.0.6/ext/fileinfo/libmagic -c /root/php-8.0.6/ext/fileinfo/libmagic/funcs.c -fPIC -DPIC -o libmagic/.libs/funcs.o
/root/php-8.0.6/ext/fileinfo/libmagic/funcs.c: In function ‘file_checkfmt’:
/root/php-8.0.6/ext/fileinfo/libmagic/funcs.c:97:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for (const char *p = fmt; *p; p++) {
^
/root/php-8.0.6/ext/fileinfo/libmagic/funcs.c:97:2: note: use option -std=c99 or -std=gnu99 to compile your code
make: *** [libmagic/funcs.lo] Error 1

看错误提示,是因为c99编译文件语法不兼容的问题,那想办法增加参数,解决办法:

  1. 打开Make编译文件,vim Makefile
  2. 在第25行,改为:CFLAGS = -g -O2 -std=c99
  3. 重新编译;
  4. 编译成功。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注