免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7801 | 回复: 12
打印 上一主题 下一主题

[扩展]windows下简单编写extension的一些要点(讨论) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-03 12:15 |只看该作者 |倒序浏览
并不是完整的文章或者教学。也不涉及关于使用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。


  1. 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
比如我的
  1. $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。


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

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2006-06-03 12:29 |只看该作者
但是windows下编译php本身就是一个难题

这点不正确,并不是一个难题,相反可能会很简单的事情。

原因在于我们基本上都拘泥于PHP了。
而编译PHP以及他的模块,这些有很多超过了PHP本身了,可能需要一些相关的例如C的相关以及其他的知识和技能。

论坛徽章:
0
3 [报告]
发表于 2006-06-03 12:35 |只看该作者
其实php5在windows下不论是用dsw还是用js角本编译都很简单~~只是在WINDOWS下要把所有的LIB都找齐需比较费劲~~

如果没有cygwin,要每个包都自己编译.....libxml,iconv,gd..........可怕啊可怕~~吼吼~~

论坛徽章:
0
4 [报告]
发表于 2006-06-03 13:33 |只看该作者
万事开头难.

论坛徽章:
0
5 [报告]
发表于 2006-06-03 18:03 |只看该作者
你还是先学会走,再跑吧!

论坛徽章:
0
6 [报告]
发表于 2006-06-03 18:22 |只看该作者
原帖由 sickcat2004 于 2006-6-3 18:03 发表
你还是先学会走,再跑吧!


请大侠指教~~~

论坛徽章:
0
7 [报告]
发表于 2006-06-03 18:28 |只看该作者
原帖由 mikespook 于 2006-6-3 18:22 发表


请大侠指教~~~



偶是菜菜
每在windows下弄过

论坛徽章:
0
8 [报告]
发表于 2006-06-05 21:34 |只看该作者
这个方法在linux下可行不?

论坛徽章:
0
9 [报告]
发表于 2006-06-05 23:33 |只看该作者
linux下执行shell脚本ext_skel,然后修改m4配置文件,configure & make就可以~~比win下更简单一些~~

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
10 [报告]
发表于 2006-06-05 23:45 |只看该作者
重点不是这个,重点是扩展的实际内容。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP