php 编译ext目录下的,在Windows上编译安装AMFEXT for PHP5.3

在Windows下编译安装AMFEXT for PHP5.3

AMFEXT官方未提供PHP5.3版的dll文件,不得不自己动手编译,以下是编译小记:

1. 下载必要的软件.

1). PHP5.3 for Win32二进制和源代码各一份

2). VC6或以上IDE

3). Cygwin.

4). 两个必要的包

http://www.php.net/extra/bindlib_w32.zip

http://www.php.net/extra/win32build.zip

5). 下载amfext 0.9.2-dev版

2. 解压缩软件到适当目录

1). 解压缩php二进制代码到e:\php5.3.6目录(其实我们只感兴趣dev子目录下的php5ts.lib文件)

2). 解压缩php源代码到e:\php5.3.6-sources目录

3). 解压缩amfext 0.9.2到e:\php5.3.6-sources\ext\amfext目录下

4). 解压缩bindlib_w32.zip和win32build.zip到同样目录(如:c:\win32build)

设置路径set path=%path%;c:\win32build\bin

3. 编译amfext VC工程

1). 打开amfext.dsp工程文件

2). 设置工程

Project->Settings(Win32 Release)->Link 为:e:\php5.3.6\dev\php5ts.lib

Build->Set Active Project Configuration选中amftext - Win32 Release.

3). 编译amfext

由于amfext for php5.3有个bug,所以编译之前要修改amf.c

//On line 1188, replace:

int deallocResult = (*struc)->refcount;

//with

int deallocResult = Z_REFCOUNT_PP(struc);

//On line 2674, replace:

newval->refcount--;

//with

Z_DELREF_P(newval);

现在按F7编译工程,提示

Cannot open include file: '../main/config.w32.h',提示找不到文件,到php源代码的字母main目录下一看,果然没有这个文件,要自己生成这个文件:

步骤1. 到PHP源代码根目录执行buildconf.bat

步骤2. 到PHP源代码根目录执行configure.bat(或者执行 cscript /nologo configure.js --with-php-build="../win32build" --without-libxml --disable-odbc)

如果没有之前的set path=%path%;D:\win32build\bin会出现如下提示:

Checking for bison.exe ... ERROR: bison is required

重新编译工程,报错。一大堆的php_stream_transport.h error

形如

..\..\main\streams/php_stream_transport.h(85) : error C2143: syntax error : missing ')' before '*'

..\..\main\streams/php_stream_transport.h(85) : error C2081: 'socklen_t' : name in formal parameter list illegal

这是由于找不到宏报的语法错误。打开这个文件,添加

typedef int socklen_t;

到文件头部。

重新编译工程,不出意外在php源代码ext子目录就可以看到php_amf.dll

php中文网:公益在线php培训,帮助PHP学习者快速成长!

Copyright 2014-2020 https://www.php.cn/ All Rights Reserved | 苏ICP备2020058653号-1e6cebb680dfe320dad7e62bd6442c3a6.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值