PHP扩展开发(2)

1. 安装VS2013

2. Cygwin安装

3. 下载Windows的PHP源码
4. 修改~/ext/ext_skel_win32.php
    加上 $cygwin_path = 'c:cygwinin';
5. 生成扩展框架 php.exe ext_skel_win32.php --extname=simple
6. 在VS2013上创建动态库项目
7. VS2013 -> 修改解决方案为Release
8. VS2013 -> 右键项目属性 -> C/C++ -> 常规(General)-> 附加包含目录(Additional Include Directories) -> 编辑添加
 
E:php-5.6.9-src
E:php-5.6.9-srcmain
E:php-5.6.9-srcTSRM
E:php-5.6.9-srcend
 
9. VS2013 -> 右键项目属性 -> C/C++ ->预处理器(Preprocessor)->预处理器定义(Preprocessor Definitions) -> 编辑增加
 
ZEND_DEBUG=0
PHP_EXTENSION
PHP_WIN32
ZEND_WIN32
HAVE_SIMPLE=1(SIMPLE要改成你的扩展名称,不改成你的扩展名,php会不识别,下同)
COMPILE_DL_SIMPLE
ZTS(这一个变量加上是开启线程安全,不加是关闭线程安全)
 
10. 生成解决方案,错误信息显示找不到“config.w32.h”,在源代码文件目录里搜索“config.w32.h”,在E:php-5.6.9-srcwin32uild文件夹里找到“config.w32.h.in”,将这个文件复制到E:php-5.6.9-srcmain文件夹里,去掉后面的“.in”
 
11. 再次生成解决方案,显示错误信息LNK1120


错误 7 error LNK1120: 5 个无法解析的外部命令 E:php-5.6.9-srcext estReleasephptest.dll 1 1 phptest

 
VS2013 -> 右键项目属性 -> 连接器(Linker)-> 输入(Input)->附加依赖项(Additional Dependencies) -> 编辑添加
 
 
12. 修改 ~/main/config.w32.h
 
增加 #define PHP_COMPILER_ID "VC9" 
 
来源: http://www.cnblogs.com/mahatmasmile/p/4527495.html
原文地址:https://www.cnblogs.com/imarno/p/5148827.html