php7 编译 win32ps 模块

碰到了很多问题 ,但最终都解决了,感觉不错。

1)下载 php source, php sdk, 以及 win32ps的源代码

2) 参照下面的连接进行编译。

https://wiki.php.net/internals/windows/stepbystepbuild

注意点:

a) 设置phpsdk_setvars.bat环境变量之前,设置vc 的环境变量。

  "D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64

b) 文章介绍的目录结构太深了,我这样的结构也是没有问题的。

SDK:D:\tool\php-sdk

php source: D:\proj\php-src

win32ps: D:\proj\pecl\win32ps-1.0.1

c) 加上 "=shared" 就可以编译 extension dll 了(要不就会直接静态连接到php)

configure --disable-all --enable-cli --enable-win32ps=shared

3) 源代码的修改。

a) MAKE_STD_ZVAL 被php7 废除了。 所以,改成类似下面的语句

    // MAKE_STD_ZVAL(tms);
    zval tms_instance;
    tms = &tms_instance;

b) 运行时,加载extension 会出现 【PHP Startup: Invalid library maybe not a PHP library 】错误

在win32ps.c 加上下面的代码,重新编译

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#ifdef COMPILE_DL_WIN32PS
ZEND_GET_MODULE(win32ps)
#endif

参考:http://stackoverflow.com/questions/7283949/php-warning-php-startup-invalid-library-maybe-not-a-php-library

以上。

时间: 2024-07-30 04:04:44

php7 编译 win32ps 模块的相关文章

android 单独编译某个模块

第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了.以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system.img的命令.在继续学习Android源代码之前,就让我们先来看看这个命令吧. 一. 首先在And

Android不编译某个模块

Android 5.1 源码,编译相关的文件一般在build目录下build/target/product 放了很多mk文件:一般不同的产品会有不同的目录 假设我不想编译OpenWnn,在build目录下grep一下“OpenWnn”target/product/full_base.mktarget/product/sdk_base.mk进入这两个文件,删掉这两句及相关库后: PRODUCT_PACKAGES := libfwdlockengine WAPPushManager 把out目录删除

安装成功的nginx,如何添加未编译安装模块(非覆盖安装http_image_filter_module)

背景:1.做了图片上传小项目.2.图片上传,需要多图管理.3.图片上传,需要存储到Fastdfs.4.Fastdfs上的图片,和Nginx结合.5.Nginx从Fastdfs获得的图片,需要使用缩略图.a.在不需要缩略图,小图的情况下,可以使用原图.b.需要缩略图的情况下,指定目标宽度和高度,获得指定宽度和高度的缩略图. 关键的几个参考资料1.安装成功的nginx如何添加未编译安装模块http://blog.csdn.net/gebitan505/article/details/17612845

Android5.0 Gallery2上编译Gallery模块出错

Android5.0 Gallery2上编译Gallery模块出错 时间:2015-05-05 19:32:57      阅读:105      评论:0      收藏:0      [点我收藏+] 在L上面,编译整个project可以编译通过,但是单独编译Gallery2模块出错,build gallery模块出现refocus的error target C++: libjni_jpegstream <= packages/apps/Gallery2/jni_jpegstream/src/

单独编译kvm模块

背景:最近在做一个虚拟机安全的项目,使用KVM来支撑虚拟化,涉及到KVM和QEMU的代码修改.由于KVM可以以模块的方式加载到内核中,可以单独编译KVM模块,而不必每次重新编译内核(鉴于编译内核所耗的时间,如果每次改动KVM都要重新编译一次内核,估计等项目做完,头发也等白了) 参考:http://blog.chinaunix.net/uid-23390992-id-3300514.html 我的改进: 1.清理 make clean CONFIG_KVM=m CONFIG_INTEL_KVM=m

Linux下的内核编译与模块操作

Linux下的内核编译与模块操作 一:实验环境 1):虚拟机 2):linux系统 3):linux系统的硬盘的空余空间要大于7G 4):虚拟机的内存要大于2.5G以上 二:实验目标 1):源码编译Linux内核 2):使用Linux内核模块 3):实战-编译一个NTFS内核模块,实现linux挂载NTFS文件系统并实现读写功能 三:实验脚本 第一块 --源码编译Linux内核 linux系统与windows系统是两种截然不同的系统,windows系统中的软件都是需要付费的,而linux系统中的

Nginx 编译,加入未编译安装模块ngx_cache_purge

Nginx 编译,加入未编译安装模块ngx_cache_purge 官网下载nginx及第三方ngx_cache_purge 模块 http://wiki.nginx.org/Install http://labs.frickle.com/nginx_ngx_cache_purge/ 编译与安装 Blockquote ./configure \ –prefix=/usr/local/nginx-1.8.0 \ –sbin-path=/usr/sbin/nginx \ –conf-path=/et

Nginx 编译,添加未编译安装模块ngx_cache_purge

Nginx 编译,添加未编译安装模块ngx_cache_purge 官网下载nginx及第三方ngx_cache_purge 模块 http://wiki.nginx.org/Install http://labs.frickle.com/nginx_ngx_cache_purge/ 编译与安装 Blockquote ./configure \ –prefix=/usr/local/nginx-1.8.0 \ –sbin-path=/usr/sbin/nginx \ –conf-path=/et

关于linux内核无法编译成模块的解决方法

在做驱动时,往往想编译成模块,让后加载来使用,这样灵活性较高,无需重新编译内核. 然后在使用供应商提供的内核时,往往无法编译成内核.也就是说把宏设置为y,编译进内核没有问题,但是设置成m编译成模块却不行.检查很多地方都不行,实际上这个问题很简单,可就这个简单的问题,搞了我一天,真心伤啊,这里做个记录做谨记. 解决的办法很简单,看看在执行内核make的时候是否添加了modules参数,如下面的形式: make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_C