PHP扩展开发(2) - VS2013环境搭建
1. 安装VS2013
2. Cygwin安装
3. 下载Windows的PHP源码
4. 修改~/ext/ext_skel_win32.php
加上 $cygwin_path = 'c:\cygwin\bin';
5. 生成扩展框架 php.exe ext_skel_win32.php --extname=simple
6. 在VS2013上创建动态库项目
7. VS2013 -> 修改解决方案为Release
8. VS2013 -> 右键项目属性 -> C/C++ -> 常规(General)-> 附加包含目录(Additional Include Directories) -> 编辑添加
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(这一个变量加上是开启线程安全,不加是关闭线程安全)
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-src\win32\build\文件夹里找到“config.w32.h.in”,将这个文件复制到E:\php-5.6.9-src\main\文件夹里,去掉后面的“.in”
11. 再次生成解决方案,显示错误信息LNK1120
错误 7 error LNK1120: 5 个无法解析的外部命令 E:\php-5.6.9-src\ext\test\Release\phptest.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