视频加载失败

记一次给php7.3.6安装rar拓展中的问题

282 字
1 分钟
记一次给php7.3.6安装rar拓展中的问题

下载好rar-4.0.0.tgz,进行解压~~

gunzip rar-4.0.0.tgz

得到tar,再解压~~~

tar -xvf rar-4.0.0.tar

cd到目录rar-4.0.0.tar里

cd rar-4.0.0/

用phpize确认一下已安装php版本

/usr/local/php/bin/phpize

输出

Configuring for:
PHP Api Version: 20180731
Zend Module Api No: 20180731
Zend Extension Api No: 320180731

然后进行生成编译配置

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

这里要根据自己的路径。

xiuixuiux刷出一堆代码 最后,make & make install 就行,但是我这里make出错了。

显示:

/tmp/pear/download/rar-4.0.0/rararch.c:1173:18: error: ‘zend_class_entry’ {aka ‘struct _zend_class_entry’} has no member named ‘iterator_funcs’; did you mean ‘iterator_funcs_ptr’?
rararch_ce_ptr->iterator_funcs.funcs = &rararch_it_funcs;
^~~~~~~~~~~~~~
iterator_funcs_ptr
make: *** [Makefile:198: rararch.lo] Error 1

重点看到

/tmp/pear/download/rar-4.0.0/rararch.c:1173:18: error: ‘zend_class_entry’ {aka ‘struct _zend_class_entry’} has no member named ‘iterator_funcs’; did you mean ‘iterator_funcs_ptr’?

让我很纳闷,索性去百度了一通,果然找到了,原来是因为

这是由于新的Zend代码由之前的: zend_class_iterator_funcs iterator_funcs; class_container.iterator_funcs.funcs = NULL; 已经修改成: zend_class_iterator_funcs *iterator_funcs_ptr; class_container.iterator_funcs_ptr = NULL;

那就好办了,直接进配置文件修改一下即可~~

编辑rar-4.0.0/目录下的rararch.c文件 修改第961行 it->parent.funcs = ce->iterator_funcs.funcs; 改为:it->parent.funcs = ce->iterator_funcs_ptr;

修改1173行 rararch_ce_ptr->iterator_funcs.funcs = &rararch_it_funcs; 改为 rararch_ce_ptr->iterator_funcs_ptr = &rararch_it_funcs;

(注意别复制到空格)

修改完保存,重新编译,成功~ ~ ~ ~

参考于:zend_class_entry’ has no member named ‘iterator_funcs’

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

记一次给php7.3.6安装rar拓展中的问题
https://www.sayxw.top/archives/13.html
作者
Sayxw
发布于
2020-02-15
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Sayxw
Hello, I'm Sayxw.
公告
欢迎来到晴耕物语,这里记录我的生活与折腾笔记。
分类
标签
最新动态
站点统计
文章
32
分类
3
标签
56
总字数
18,110
运行时长
0 天
最后活动
0 天前

当前页面没有目录

文章目录

当前页面没有目录