分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

PHP7 学习笔记(七)如何使用zephir编译一个扩展记录

发布时间:2023-09-06 01:21责任编辑:傅花花关键词:PHP编译

 一、zephir 编译遇到的错误

安装

git clone https://github.com/phalcon/zephir
$ cd zephir$ ./install-json$ ./install -c

编译

www@ubuntu4:~$ zephir build──────────────────────────────────────────────────────────── ?The Zephir Parser extension is not loaded. ?Note: Zephir no longer distributed with internal parser. ???To install latest stable Zephir Parser please refer to: ?https://github.com/phalcon/php-zephir-parser────────────────────────────────────────────────────────────

二、php-zephir-parser 安装

git clone git://github.com/phalcon/php-zephir-parser.git

php7.0-dev 安装报错

www@ubuntu4:~$ sudo apt-get install php7.0-dev gcc make re2c autoconfReading package lists... DoneBuilding dependency tree ??????Reading state information... DoneE: Unable to locate package php7.0-devE: Couldn‘t find any package by regex ‘php7.0-dev‘

如何让解决

1、php7的存储库的问题,添加php7 ppa

sudo add-apt-repository ppa:ondrej/php

2、更新库

sudo apt-get update

3、现在做一个搜索来确认php7是有的

sudo apt search php7

重新安装,则不会报错

www@ubuntu4:~$ sudo apt-get install php7.0-dev gcc make re2c autoconfReading package lists... DoneBuilding dependency tree ??????Reading state information... Donegcc is already the newest version.gcc set to manually installed.make is already the newest version.re2c is already the newest version.The following extra packages will be installed: ?automake autotools-dev debhelper dh-apparmor dh-php gettext intltool-debian ?libasprintf-dev libgettextpo-dev libgettextpo0 liblist-moreutils-perl ?libltdl-dev libmail-sendmail-perl libssl1.1 libsys-hostname-long-perl ?libtool libunistring0 m4 php-common php-pear php-xml php7.0-cli ?php7.0-common php7.0-json php7.0-opcache php7.0-readline php7.1-common ?php7.1-xml pkg-php-tools po-debconf shtool xml2

开始编译

www@ubuntu4:~/ffmpeg_videos/php-zephir-parser$ sudo ./installGenerating parser...Parser statistics: 132 terminals, 99 nonterminals, 470 rules ??????????????????982 states, 0 parser table entries, 0 conflictsConfiguring for:PHP Api Version: ????????20151012Zend Module Api No: ?????20151012Zend Extension Api No: ??320151012libtool: compile: ?gcc -I. -I/home/www/ffmpeg_videos/php-zephir-parser -DPHP_ATOM_INC -I/home/www/ffmpeg_videos/php-zephir-parser/include
-I/home/www/ffmpeg_videos/php-zephir-parser/main -I/home/www/ffmpeg_videos/php-zephir-parser -I/usr/include/php/20151012

-I/usr/include/php/20151012/main -I/usr/include/php/20151012/TSRM -I/usr/include/php/20151012/Zend -I/usr/include/php/20151012/ext
-I/usr/include/php/20151012/ext/date/lib -DHAVE_CONFIG_H -march=native -mtune=native -O2 -fomit-frame-pointer -fvisibility=hidden -flto
-c /home/www/ffmpeg_videos/php-zephir-parser/zephir_parser.c ?-fPIC -DPIC -o .libs/zephir_parser.o

编译完成

查找.so 文件路径

www@ubuntu4:~ sudo find / -name zephir_parser.so/usr/lib/php/20151012/zephir_parser.so

配置php.ini 文件

sudo vim /opt/php-7.1.9/etc/php.ini

添加一下内容:

[Zephir Parser]extension=/usr/lib/php/20151012/zephir_parser.so

安装完毕

三、重新编译,出现同样的错误:

www@ubuntu4:~/ffmpeg_videos/zephir-framework/lib$ zephir build──────────────────────────────────────────────────────────── ?The Zephir Parser extension is not loaded. ?Note: Zephir no longer distributed with internal parser. ???To install latest stable Zephir Parser please refer to: ?https://github.com/phalcon/php-zephir-parser────────────────────────────────────────────────────────────

好纠结啊,如何解决:

sudo ln -s /opt/php-7.0.9/bin/php /usr/bin/php

继续,Ok 了:

www@ubuntu4:~/ffmpeg_videos/zephir-framework/zephirlib$ zephir buildCompiling...Installing...Extension installed!Add extension=zephirlib.so to your php.ini

PHP7 学习笔记(七)如何使用zephir编译一个扩展记录

原文地址:http://www.cnblogs.com/tinywan/p/7753456.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved