在xp环境下编译php的c扩展dll文件(完全步骤解析)
来源:互联网 发布:随州广电网络的电话是 编辑:程序博客网 时间:2024/06/06 02:54
本文大部分参考:windows下开发PHP扩展dll(无需Cygwin)http://hi.baidu.com/30way/blog/item/1827418bf11cdecbfd1f109c.html,对其进行补充和修正;
工具目录:E:\源码包\XP下apache+php+dll编译\
包括php-5.2.17.tar.gz源码包和php-5.2.5-Win32.rar(XP下二进制包);
步骤:
1、搭建apache2+php5的windows环境,安装Visual C++6.0(把Microsoft Visual Studio\Common\MSDev98\Bin的绝对路径添加到windows环境变量,到最后,都没添加成功,而是直接在执行程序之前添加运行路径);
2、解压源码包到D:\php-5.2.17,二进制包解压到D:\PHP;
3、进入d:\ php-5.2.17\ext目录,复制skeleton文件夹,并重命名为要开发扩展的名字,本例为“linvo”;
4、把二进制包中dev目录下的php5ts.lib文件,拷入新建的linvo目录(编译需要);
5、修改linvo目录中的php_skeleton.h、skeleton.c、skeleton.dsp这三个文件,把文件名都替换成相应的linvo,并且替换内容中所有extname为linvo,EXTNAME为LINVO(严格区分大小写);
6、编辑php_linvo.h文件(头文件)
在PHP_FUNCTION(confirm_linvo_compiled);下面编写
PHP_FUNCTION(hello);
声明一个hello函数;
7、编辑linvo.c文件(主文件)
在PHP_FE(confirm_linvo_compiled, NULL) 下面编写
PHP_FE(hello, NULL)
这是函数入口,下面该写函数主体了
找到PHP_FUNCTION(confirm_test_compiled)函数,该函数是测试函数,在该函数后面新写一个函数
PHP_FUNCTION(hello)
{
char *arg = NULL;
int arg_len, len;
char *strg;
/* 接收参数 */
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
return;
}
len = spprintf(&strg, 0, "Hello,%s", arg);
RETURN_STRINGL(strg, len, 0);
}
8、运行cmd命令行,进入d:\ php-5.2.17\ext\linvo目录,输入命令(如图1);
9、如果没有错误,则在php_src目录下会生成一个Release_TS文件夹,里面就是编译好的php_linvo.dll扩展;
10、将其拷入运行环境中的php扩展目录D:\PHP\ext;
11、编辑C:\WINDOWS\php.ini,添加extension=php_linvo.dll,重启apache;
12、D:\Program Files\Apache Group\Apache2\htdocs\下创建测试文件test.php,内容如下:
<?php
echo hello('Linvo');
?>
13、通过浏览器访问该文件:http://localhost/test.php,访问成功(如图2);
14、通过phpinfo()也可看到扩展已加载的信息:
<?
phpinfo();
?>
- 在xp环境下编译php的c扩展dll文件(完全步骤解析)
- windows环境下php和Php扩展编译,扩展dll文件编译
- xp下Appweb进行php的c扩展环境构造
- 在Windows下用C扩展PHP(打包成dll)的方法
- 在Windows下用C扩展PHP(打包成dll)的方法
- Matlab2015编译生成Dll并在VS2010环境下应用的具体操作步骤(64位系统)
- win7 VS2012 编译可在XP下调用的dll文件
- PHP-C扩展编译步骤 (linux)
- php 在windows下编译安装dll文件.
- libmemcached在windows下的PHP扩展(php_memcached.dll下载)
- 嵌入式初学者在Linux环境下编译C语言的入门步骤
- Win7下VS2010编译的程序在XP报错:找不到msvcp100d.dll或者msvcp100.dll
- boost_1_42在VS环境下的完全编译
- 在mingw环境下编译mplayer-1.0pre1的步骤
- [ubuntu环境搭建]在ubuntu下编译C++、C文件
- Ubuntu下编译实现PHP的c扩展
- xp下用Cygwin模拟unix编译php和扩展
- 在Windows环境下进行PHP扩展的开发
- Javascript中两种最通用的定义类的方法
- 第十五周实验报告1
- oscache配置详解
- SVN提交文件 过滤文件类型
- SIP别人的学习笔记,很好
- 在xp环境下编译php的c扩展dll文件(完全步骤解析)
- increase dalvik vm heapsize
- jsp自定义标签
- 二十年后的回眸(3)——快乐的单身汉
- MyEclipse6.5注册码
- Ajax 改造,第 1 部分: 使用 Ajax 和 jQuery 改进现有站点
- 【线段树求LCIS】HDU 3308
- U盘杀毒软件U盘Clear
- jQuery-对Select的操作集合