编译 PHP 扩展出错,哪位大神帮忙看看

2018-05-05 23:05:21 +08:00
 lampxiongdi

/bin/sh /home/vagrant/rocketmqphpclient/libtool --mode=compile g++ -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/home/vagrant/rocketmqphpclient -DPHP_ATOM_INC -I/home/vagrant/rocketmqphpclient/include -I/home/vagrant/rocketmqphpclient/main -I/home/vagrant/rocketmqphpclient -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -std=c++11 -g -O2 -c /home/vagrant/rocketmqphpclient/rocketmqclient.cpp -o rocketmqclient.lo libtool: compile: g++ -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/home/vagrant/rocketmqphpclient -DPHP_ATOM_INC -I/home/vagrant/rocketmqphpclient/include -I/home/vagrant/rocketmqphpclient/main -I/home/vagrant/rocketmqphpclient -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -std=c++11 -g -O2 -c /home/vagrant/rocketmqphpclient/rocketmqclient.cpp -fPIC -DPIC -o .libs/rocketmqclient.o In file included from /usr/include/php/Zend/zend_types.h:27:0, from /usr/include/php/Zend/zend.h:29, from /usr/include/php/main/php.h:35, from /home/vagrant/rocketmqphpclient/rocketmqclient.cpp:26: /usr/include/php/Zend/zend_operators.h: In function 'void fast_long_increment_function(zval*)': /usr/include/php/Zend/zend_operators.h:446:68: error: '__builtin_saddl_overflow' was not declared in this scope if (UNEXPECTED(__builtin_saddl_overflow(Z_LVAL_P(op1), 1, &lresult))) { ^ /usr/include/php/Zend/zend_portability.h:312:52: note: in definition of macro 'UNEXPECTED'

define UNEXPECTED(condition) __builtin_expect(!!(condition), 0)

                                                ^

/usr/include/php/Zend/zend_operators.h: In function 'void fast_long_decrement_function(zval*)': /usr/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))) { ^ /usr/include/php/Zend/zend_portability.h:312:52: note: in definition of macro 'UNEXPECTED'

define UNEXPECTED(condition) __builtin_expect(!!(condition), 0)

                                                ^

/usr/include/php/Zend/zend_operators.h: In function 'void fast_long_add_function(zval*, zval*, zval*)': /usr/include/php/Zend/zend_operators.h:554:80: error: '__builtin_saddl_overflow' was not declared in this scope if (UNEXPECTED(__builtin_saddl_overflow(Z_LVAL_P(op1), Z_LVAL_P(op2), &lresult))) { ^ /usr/include/php/Zend/zend_portability.h:312:52: note: in definition of macro 'UNEXPECTED'

define UNEXPECTED(condition) __builtin_expect(!!(condition), 0)

                                                ^

/usr/include/php/Zend/zend_operators.h: In function 'void fast_long_sub_function(zval*, zval*, zval*)': /usr/include/php/Zend/zend_operators.h:657:80: error: '__builtin_ssubl_overflow' was not declared in this scope if (UNEXPECTED(__builtin_ssubl_overflow(Z_LVAL_P(op1), Z_LVAL_P(op2), &lresult))) { ^ /usr/include/php/Zend/zend_portability.h:312:52: note: in definition of macro 'UNEXPECTED'

define UNEXPECTED(condition) __builtin_expect(!!(condition), 0)

                                                ^

In file included from /usr/include/php/main/php.h:39:0, from /home/vagrant/rocketmqphpclient/rocketmqclient.cpp:26: /home/vagrant/rocketmqphpclient/rocketmqclient.cpp: At global scope: /usr/include/php/Zend/zend_API.h:178:2: error: 'zend_rocketmqclient_globals' does not name a type zend_##module_name##_globals module_name##_globals; ^

4843 次点击
所在节点    PHP
4 条回复
dilu
2018-05-06 10:58:39 +08:00
没看出什么错误,建议你用 pecl
wdlth
2018-05-06 11:49:28 +08:00
https://bugs.php.net/bug.php?id=75852
https://forum.phalconphp.com/discussion/17595/problem-with-compiled-phalcon-with-php-721

因为__builtin_xxx_overflow 是 GCC 高版本才有的,你有几种选择,装一个 GCC 5.x 来编译,或者用编译好的,或者尝试编译旧版本。
lampxiongdi
2018-05-06 19:35:25 +08:00
@wdlth 我升级了 gcc 版本 解决了 非常感谢
lampxiongdi
2018-05-06 19:46:57 +08:00
@wdlth 兄弟 我是想编译个 rocketmq 的 c 扩展给 php 用 能提供些思路吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/452436

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX