我是如何为yac做windows支持的
程序员文章站
2023-12-25 15:16:45
...
前几天 @laruence 说yac需要windows支持.. 依稀记得他1、2个月前就在喊.. 大门不忍看他日渐憔悴,于是就接了过来. 作为一个当代文艺青年..我已经有1年多的时间没有在windows上做过开发.. 也从来没有在windows上写过c(php扩展).. 一直以来都是在Linux上做的开
前几天 @laruence 说yac需要windows支持.. 依稀记得他1、2个月前就在喊.. 大门不忍看他日渐憔悴,于是就接了过来. 作为一个当代文艺青年..我已经有1年多的时间没有在windows上做过开发.. 也从来没有在windows上写过c(php扩展).. 一直以来都是在Linux上做的开发.. so..本篇文章就来说说windows下的扩展开发,从无到遇坑到测试通过遇到的一些应该注意的问题..如果下文要提到的一些东西能google到我就直接用链接代替了. Here we go. a> windows环境..我是开虚机来跑..具体环境配置见:链接,有几个需要注意的点。 你需要明白ZTS和NTS的意思,并且使用正确的方式来配置VS的环境变量和使用正确的包,比如我的环境是VS2008,我开发时候用NTS(非线程安全),所以我选择的是php-5.3.8-nts-Win32-VC9-x86这个包.. 记得设置PATH,会让你事半功倍。 b> vs2008的 项目 -> 属性 里面有几个需要调整的值 配置属性->常规 中的 MFC的使用 最好选择为 在静态库中使用MFC 配置属性->C/C++->预处理器->预处理定义 这里面的定义记得填,比如在yac中,我设置了如下几个: PHP_YAC_EXPORTS ZEND_DEBUG=0 COMPILE_DL_YAC ZEND_WIN32 PHP_WIN32 HAVE_TEST=1 各位需要按照自己的扩展情况做适当修改, 如果是ZTS记得在这里加上 配置属性->C/C++->代码生成->运行时库 这个需要改为 多线程DLL(/MD) 配置属性->C/C++->高级->编译为 这里需要修改为 编译为c代码(/TC) 配置属性->链接器->输入->附加依赖项 在yac中,我是如下设置的: "C:\php\php-5.3.25-nts-Win32-VC9-x86\dev\php5.lib" "Advapi32.lib" c>coding and coding .. 这里真的没什么说的.. 你至少需要写出一个可以0错误可以生成出来的dll.. 不然是没办法进入下一步的.. d>到了重点..调试,我当时怎么找都找不到如何在windows下调试php扩展,其实很简单,只是因为没有在windows下面开发c的经验,首先,我们需要把 [...]
原文地址:我是如何为yac做windows支持的, 感谢原作者分享。
推荐阅读