T086学习网 | 站长学院 | 技术文档 | 成语 | 歇后语 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论 | 欣欣百宝箱

windows下简单编写extension的一些要点

【 更新时间:2012-01-05 | 字体:
[导读]并不是完整的文章或者教学。也不涉及关于使用VC++ 6.0的任何知识。仅仅是快速在windows下开发extension的想法。 在linux或unix下编译,开发extension相信每个认真看过手册的人都会了。但是windows下编译php本身就是一...

并不是完整的文章或者教学。也不涉及关于使用VC++ 6.0的任何知识。仅仅是快速在windows下开发extension的想法。

在linux或unix下编译,开发extension相信每个认真看过手册的人都会了。但是windows下编译php本身就是一个难题,我至今未能在windows下完整编译php5,总是缺少一些lib。对于windows下编译php5并没有很多的文档,不过手册上已经足够详细了。但是既然仅仅为了编写一个ext就搞出一大堆的东西似乎有些划不来,那就简单一些,只编写ext并编译。

步骤简介

1.取得php代码,比如php-5.1.4。

2.取得windows下的php二进制包,要跟代码同版本。

3.进入原代码目录 php-5.1.4/ext/ 并使用CLI解释执行ext_skel_win32.php。


php-win ext_skel_win32.php --extname=HelloWorld



4.从二进制包中的dev目录取出php5ts.lib,放到刚才执行ext_skel_win32.php产生的php-5.1.4/ext/HelloWorld/ 《==重要!

5.编写ext功能代码,可参考精华贴,乔版主那篇unix下开发php4的ext的贴。差不多。

6.在php-5.1.4/ext/HelloWorld/下有HelloWorld.dsp,用VC++打开,编译。在php-5.1.4/Release_TS/ 下会产生php_HelloWorld.dll。

7.如何使用这个ext不多说了。

------------------------------

要点1:一定要安装cygwin,如果cygwin安装路径不是c:\cygwin的话,要手工修改ext_skel_win32.php中的$cygwin_path
比如我的
 

$cygwin_path 'Z:\working\bin\cygwin\bin';



要点2:编译ext需要php5ts.lib或php5ts_debug.lib,分别对应Release和Debug方式编译。如果编译时提示php5ts_debug.lib找不到,那么要看看编译方式是什么。

------------------------------

问题1:这样编译的好处是什么?
回答:快!如果不使用php二进制包中编译好的php5ts.lib,而从头在windows下编译php5ts.lib,要配置一个编译环境。麻烦得很,vc自己带得lib缺少很多包,php带的也缺少,要在cygwin里把包都找齐。用dev/php5ts.lib直接编译ext就跳过了编译 php的步骤,可以快速开发ext。同时保证跟官方发布的windows二进制包匹配。

问题2:这样编译跟cygwin下编译有什么区别?
回答:cygwin下编译的php无法脱离cygwin环境,编译的ext自然也无法脱离cygwin。


补充中...还有一些没想到~~

  • 转载请注明来源:IT学习网 网址:http://www.t086.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们,我们会尽快予以更正。
更多
留言建议ASP探针PHP探针站长Enjoy的Blog
© 2017 T086学习网 - T086.com(原itlearner.com)
RunTime:10.10ms QueryTime:7