php版本7.2, 使用yum方式安装的,
pecl install swoole-4.4.7
报错,错误信息并开不出什么问题,所以进行编译安装。编译安装错误信息如下:
include/php/Zend/zend_operators.h:500:68: error: '__builtin_ssubl_overflow' was not declared in this scope
if (UNEXPECTED(__builtin_ssubl_overflow(Z_LVAL_P(op1), 1, &lresult))) {
- 该错误是由于centos上的默认gcc缺少必需的定义,即使在升级gcc之后,PECL也会找到旧的编译器。要安装驱动程序,必须首先通过安装devtoolset集合来升级gcc, 操作如下:
sudo yum install centos-release-scl
sudo yum install devtoolset-7
scl enable devtoolset-7 bash
通过上述操作,可以编译安装成功,但是加载扩展会出现错误,由于php是在升级gcc前安装的,调用gcc版本一致的代码会错误。
在
scl enable devtoolset-7 bash
执行后进行php的重新安装,然后再安装swoole即可解决该问题。