PHP7 学习笔记(七)如何使用zephir编译一个扩展记录
一、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.-dev gcc make re2c autoconf
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package php7.-dev
E: Couldn't find any package by regex 'php7.-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.-dev gcc make re2c autoconf
Reading package lists... Done
Building dependency tree
Reading state information... Done
gcc 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. libsys-hostname-long-perl
libtool libunistring0 m4 php-common php-pear php-xml php7.-cli
php7.-common php7.-json php7.-opcache php7.-readline php7.-common
php7.-xml pkg-php-tools po-debconf shtool xml2
开始编译
www@ubuntu4:~/ffmpeg_videos/php-zephir-parser$ sudo ./install
Generating parser...
Parser statistics: terminals, nonterminals, rules
states, parser table entries, conflicts
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
libtool: 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//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 -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
或者指定编译配置文件
$./install --phpize /usr/local/php-7.1./bin/phpize --php-config /usr/local/php-7.1./bin/php-config ....
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php-7.1.11/lib/php/extensions/no-debug-non-zts-20160303/
Cleaning..
Thanks for compiling Zephir Parser!
Build succeed: Please restart your web server to complete the installation
编译完成

查找.so 文件路径
www@ubuntu4:~ sudo find / -name zephir_parser.so
/usr/lib/php//zephir_parser.so
配置php.ini 文件
sudo vim /opt/php-7.1./etc/php.ini
添加一下内容:
[Zephir Parser]
extension=/usr/lib/php//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
────────────────────────────────────────────────────────────
好纠结啊,如何解决:
直接系统自动默认安装的
rm /usr/bin/php
做个软连接
sudo ln -s /opt/php-7.0./bin/php /usr/bin/php
继续,Ok 了:
www@ubuntu4:~/ffmpeg_videos/zephir-framework/zephirlib$ zephir build
Compiling...
Installing...
Extension installed!
Add extension=zephirlib.so to your php.ini
编译PHP7 如何使用 Cli 命令而不是软连接
root用户,sudo vim /etc/profile,添加PHP7编译的路径:
export PATH=$PATH:/usr/local/php-7.1.8/bin,执行source profile使生效
PHP7 学习笔记(七)如何使用zephir编译一个扩展记录的更多相关文章
- PHP7 学习笔记(十六)Yaconf 一个高性能的配置管理扩展
鸟哥博客原文:Yaconf – 一个高性能的配置管理扩展 什么是yaconf ? 它使用单独的一个配置目录(在yaconf.directory指定), 不和代码在一起.它在PHP启动的时候, 处理所有 ...
- Typescript 学习笔记七:泛型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...
- python3.4学习笔记(七) 学习网站博客推荐
python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...
- Go语言学习笔记七: 函数
Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...
- iOS 学习笔记七 【博爱手把手教你使用2016年gitHub Mac客户端】
iOS 学习笔记七 [博爱手把手教你使用gitHub客户端] 第一步:首先下载git客户端 链接:https://desktop.github.com 第二步:fork 大神的代码[这里以我的代码为例 ...
- 【opencv学习笔记七】访问图像中的像素与图像亮度对比度调整
今天我们来看一下如何访问图像的像素,以及如何改变图像的亮度与对比度. 在之前我们先来看一下图像矩阵数据的排列方式.我们以一个简单的矩阵来说明: 对单通道图像排列如下: 对于双通道图像排列如下: 那么对 ...
- Linux学习笔记(七) 查询系统
1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 ...
随机推荐
- Windows 下面 winrar 压缩简单记录
1. 最高压缩比率 原始文件大小: 2.06g(3000余个文件) 压缩后文件大小:475m 压缩耗时: 210s 压缩率:22% 2. 较高压缩比率 压缩后文件大小:700 m 压缩率:32% 3 ...
- Pyhton语句
一.if条件语句 1.python 并不支持 switch 语句 num = 5 if num == 3: # 判断num的值 print 'boss' elif num == 2: print 'u ...
- FICO基础知识(三)
成本中心: 成本中心是企业内的最小职责单位,是每一笔费用的具体接收者.创建成本中心主数据时必须将每个成本中心分配给标准层次结构的某个节点,标准层次结构反映了成本中心与成本中心.成本中心与成本中心组.成 ...
- Delphi中的Sender:TObject对象解析
Delphi中的Sender:TObject对象解析 procedure TForm1.Button1Click(Sender: TObject); begin end; 解析:Procedure是过 ...
- spring cloud实战与思考(一) spring config全局配置方案设计
“spring cloud”的配置中心工具“spring cloud config”提供了分布式系统配置文件集中管理解决方案.该工具功能强大,实现也很简单.网上可以搜索到很多开发教程和用例.本文并不是 ...
- Lodop在页面获取打印机列表 选择打印机预览
利用GET_PRINTER_COUNT,获取打印机个数,然后用GET_PRINTER_NAME(intPrinterIndex);循环获取打印机名称,添加到list列表里,可以让用户在页面就选择打印机 ...
- UVALive5876-Writings on the Wall-KMP
有两段字符串,第一段的尾和第二段的头可能重合.问有多少种组合的可能. 需要理解一下next数组的意义. #include <cstdio> #include <cstring> ...
- Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds
Servers -->双击你的启动服务--> 对话框左下角切换选项卡为 Overview -->中东找到Timeouts 把Start(in seconds)改为 100 ,然后按 ...
- 【洛谷P1072】Hankson 的趣味题
题目大意:给定四个数字 a,b,c,d,求满足 \(gcd(a,x)=b,lcm(c,x)=d\) 的 x 的个数. 题解: 解法1:根据 lcm 的性质,x 一定为 d 的约数.因此,直接枚举 d ...
- <? extends T>和<? super T>的理解
背景:对泛型中使用super和extends关键字进行分析总结. 问题: public class TestExtend { public static void main(String[] args ...