在centos 7 中,如何安装 PHP7 的扩展 protobuf?
我现在在我的服务器上安装 php 的 protobuf 安装不成功!
我使用的扩展是 https://github.com/allegro/ph... ?
在编译安装的时候 phpize 和 ./configure 都过了,但是到了 make 的时候就报错!
部分错误如下:
/home/lvyun/php-protobuf/protobuf.c: In function ?.b_parse_field_value
/home/lvyun/php-protobuf/protobuf.c:1004:20: error: lvalue required as leof assignment
Z_TYPE_P(value) = IS_DOUBLE;
^
/home/lvyun/php-protobuf/protobuf.c:1009:20: error: lvalue required as leof assignment
Z_TYPE_P(value) = IS_LONG;
^
/home/lvyun/php-protobuf/protobuf.c:1014:20: error: lvalue required as leof assignment
Z_TYPE_P(value) = IS_LONG;
^
/home/lvyun/php-protobuf/protobuf.c:1019:20: error: lvalue required as leof assignment
Z_TYPE_P(value) = IS_DOUBLE;
^
/home/lvyun/php-protobuf/protobuf.c:1024:20: error: lvalue required as leof assignment
Z_TYPE_P(value) = IS_LONG;
^
/home/lvyun/php-protobuf/protobuf.c:1029:22: error: ?.S_BOOL?.undeclause in this function)
Z_TYPE_P(value) = IS_BOOL;
^
/home/lvyun/php-protobuf/protobuf.c:1034:20: error: lvalue required as leof assignment
Z_TYPE_P(value) = IS_LONG;
求教,这是什么原因?是 扩展的版本没有跟上吗?还是因为有什么依赖没有安装?
如果这个扩展包不能安装在 php7 上,那还有什么扩展可以安装?
Linux上编译
pecl install protobuf
安装的最新版本然后按照提示加入到php.ini就可以了,前提是安装了
php-pear php-devel
不用编译
如果编译出现了麻烦,可以直接
composer require google/protobuf
,这个拥有和扩展文件相同的类和方法不过效率肯定没扩展那么高了,在Windows的集成环境中值得一用。
因为Windows下也有protoc的工具(下载
protoc-3.X.X-win32.zip
),所以本地编译proto文件,以及调试就无需那么麻烦。源代码:https://github.com/google/pro...