在vs2008开发PHP扩展之二--vs2008下PHP扩展项目的建立配置以及生成dll
2011-11-27 20:10
344 查看
上面讲了如何搭建PHP开发环境和创建一个PHP扩展骨架。这里讲如何使用vs2008ide来开发我们的PHP扩展。具体如下:
1.启动vs2008
2.创建项目
文件-新建-从现有代码创建项目。
选择visual-c++,
找到项目位置F:\php_win\php-5.3.8\ext\test
项目名称php_test,
项目类型:选择“动态链接库dll项目”。
完成即可。
3.配置相关参数
菜单-项目-属性,打开php_test属性页对话框,
在“配置属性"- "C/C++"
“常规”:附加包含目录:
C:\vc\vc2008compiler\PlatformSDK\Include
C:\vc\vc2008compiler\include
F:\php_win\win32build\include
F:\php_win\win32build
F:\php_win\php-5.3.8
F:\php_win\php-5.3.8\win32
F:\php_win\php-5.3.8\main
F:\php_win\php-5.3.8\TSRM
F:\php_win\php-5.3.8\Zend
“预处理器”:预处理器定义
WIN32
_DEBUG
_WINDOWS
_USRDLL
PHP_TEST_EXPORTS
ZEND_DEBUG=0
COMPILE_DL_TEST
ZTS
ZEND_WIN32
PHP_WIN32
H***E_TEST=1
在“配置属性"- "链接器"中
“输入”:附加依赖项中添加
F:\php_win\php-5.3.8-nts-Win32-VC9-x86\dev\php5.lib
C:\vc\vc2008compiler\PlatformSDK\Lib\Kernel32.Lib
C:\vc\vc2008compiler\lib\oldnames.lib
C:\vc\vc2008compiler\lib\msvcrtd.lib
要根据扩展名称而定,记得要大写。
这里要去掉:“从父级或项目默认设置继承”的勾选
5.生成DLL
右击php_test项目,选择“生成”
,然后控制打印如下的类似,表示成功,如果有错误,可以自己根据问题进行处理
这样在
F:\php_win\php-5.3.8\ext\test\Debug
目录生成了
php_test.dll
php扩展文件,在大功告成之前,先确保这个扩展是可以用的,接下来部署这个扩展,看看是否正常。
6.部署测试PHP扩展模块
放到你的phpapache中加载这个扩展,然后运行F:\php_win\php-5.3.8\ext\test\给出的test.php
如果php环境启动没有报错误,说明我们开发的模块是可以用的php正确php模块。
如果有错误你可以自己找找问题原因,然后逐一解决。
下一篇文章会说说这些可能遇到的问题,当然并不是全部的问题。
1.启动vs2008
2.创建项目
文件-新建-从现有代码创建项目。
选择visual-c++,
找到项目位置F:\php_win\php-5.3.8\ext\test
项目名称php_test,
项目类型:选择“动态链接库dll项目”。
完成即可。
3.配置相关参数
菜单-项目-属性,打开php_test属性页对话框,
在“配置属性"- "C/C++"
“常规”:附加包含目录:
C:\vc\vc2008compiler\PlatformSDK\Include
C:\vc\vc2008compiler\include
F:\php_win\win32build\include
F:\php_win\win32build
F:\php_win\php-5.3.8
F:\php_win\php-5.3.8\win32
F:\php_win\php-5.3.8\main
F:\php_win\php-5.3.8\TSRM
F:\php_win\php-5.3.8\Zend
“预处理器”:预处理器定义
WIN32
_DEBUG
_WINDOWS
_USRDLL
PHP_TEST_EXPORTS
ZEND_DEBUG=0
COMPILE_DL_TEST
ZTS
ZEND_WIN32
PHP_WIN32
H***E_TEST=1
在“配置属性"- "链接器"中
“输入”:附加依赖项中添加
F:\php_win\php-5.3.8-nts-Win32-VC9-x86\dev\php5.lib
C:\vc\vc2008compiler\PlatformSDK\Lib\Kernel32.Lib
C:\vc\vc2008compiler\lib\oldnames.lib
C:\vc\vc2008compiler\lib\msvcrtd.lib
要根据扩展名称而定,记得要大写。
这里要去掉:“从父级或项目默认设置继承”的勾选
5.生成DLL
右击php_test项目,选择“生成”
,然后控制打印如下的类似,表示成功,如果有错误,可以自己根据问题进行处理
1>------ 已启动全部重新生成: 项目: php_test, 配置: Debug Win32 ------ 1>正在删除项目“php_test”(配置“Debug|Win32”)的中间文件和输出文件 1>正在编译... 1>cl: 命令行 warning D9035 :“Wp64”选项已否决,并将在将来的版本中移除 1>test.c 1>f:\php_win\php-5.3.8\zend\zend_execute.h(70) : warning C4311: “类型转换”: 从“gc_root_buffer *”到“zend_uintptr_t”的指针截断 1>f:\php_win\php-5.3.8\zend\zend_execute.h(70) : warning C4312: “类型转换”: 从“zend_uintptr_t”转换到更大的“gc_root_buffer *” 1>f:\php_win\php-5.3.8\zend\zend_execute.h(230) : warning C4311: “类型转换”: 从“void **”到“zend_uintptr_t”的指针截断 1>f:\php_win\php-5.3.8\zend\zend_execute.h(234) : warning C4267: “函数”: 从“size_t”转换到“int”,可能丢失数据 1>f:\php_win\php-5.3.8\zend\zend_execute.h(291) : warning C4312: “类型转换”: 从“zend_uintptr_t”转换到更大的“void *” 1>f:\php_win\php-5.3.8\zend\zend_execute.h(306) : warning C4312: “类型转换”: 从“zend_uintptr_t”转换到更大的“void *” 1>f:\php_win\php-5.3.8\zend\zend_execute.h(313) : warning C4311: “类型转换”: 从“void *”到“zend_uintptr_t”的指针截断 1>f:\php_win\php-5.3.8\zend\zend_execute.h(326) : warning C4311: “类型转换”: 从“void *”到“zend_uintptr_t”的指针截断 1>正在编译资源清单... 1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>正在链接... 1> 正在创建库 Debug\php_test.lib 和对象 Debug\php_test.exp 1>正在嵌入清单... 1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>生成日志保存在“file://f:\php_win\php-5.3.8\ext\test\Debug\BuildLog.htm” 1>php_test - 0 个错误,8 个警告 ========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
这样在
F:\php_win\php-5.3.8\ext\test\Debug
目录生成了
php_test.dll
php扩展文件,在大功告成之前,先确保这个扩展是可以用的,接下来部署这个扩展,看看是否正常。
6.部署测试PHP扩展模块
放到你的phpapache中加载这个扩展,然后运行F:\php_win\php-5.3.8\ext\test\给出的test.php
如果php环境启动没有报错误,说明我们开发的模块是可以用的php正确php模块。
如果有错误你可以自己找找问题原因,然后逐一解决。
下一篇文章会说说这些可能遇到的问题,当然并不是全部的问题。
相关文章推荐
- vs2008 c#项目调试dll源码,问题:“若要调试此模块,请将其项目生成配置更改为“调试”模式” 的解决方案
- 解决VS2008 开发Windows Mobile 项目生成速度慢的问题
- PHP扩展开发-03-读取php.ini中的配置
- inux redis 安装配置, 以及redis php扩展
- iOS开发资源:推送通知相关开源项目--PushSharp、APNS-PHP以及Pyapns等
- 使用手动配置的方式开发第一个Struts项目的步骤以及实例
- java 学习备忘录(一):jsp项目建立及开发环境的基本配置
- 解决VS2008 开发Windows Mobile 项目生成速度慢的问题
- PHP扩展开发与内核应用阅读笔记---php的作用域以及如何在扩展中定义,查找php变量
- PHP扩展开发(1)-生成扩展框架
- 解决VS2008 开发Windows Mobile 项目生成速度慢的问题
- Opencv2.0 lib和dll的编译获取过程 以及 vs2005,vs2008配置过程
- PHP的Thinkphp5的apache服务器开发过程中的虚拟域名简化以及路由配置
- JAVAWEB开发之Maven的入门详解——Maven的安装以及项目的结构和Maven的使用以及私服的搭建与配置
- 解决VS2008 开发Wince应用程序项目生成速度慢的问题
- php开发环境以及插件的配置安装
- 解决VS2008 开发Windows Mobile 项目生成速度慢的问题
- windows下memcached安装以及php_memcache.dll扩展
- php扩展开发笔记(2)多个源代码文件的配置和编译
- 封装短信猫,dell类库生成,在vs2008中创建类库项目.并在mobilesp中建立pulbic类型的gms类.