• 用vc 2008编译php扩展

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://syre.blogbus.com/logs/12144402.html

    今天又想试试写php扩展,先从编译sample开始。

    首先用ext_skel_win32.php生成骨架代码。这个需要cygwin。如果cygwin不在c:\cygwin,那么需要修改这个文件,指定cygwin的位置。比如:$cygwin_path = 'd:\cygwin\bin';

    之后用vc2008打开生成的dsp工程文件,升级工程文件以后,把工程选项里的C/C++ -> Code Generation里的Runtime Library改成Multi-threaded DLL (/MD);C/C++ -> Advanced里的Compile As设成Compile as C Code (/TC)。

    然后就编译,居然就没通过有几个语法错误…… 搜索了一下,发现还要改两个地方:

     Zend/Zend.h:

    把#include <stdio.h>  搬到

    #ifdef ZEND_WIN32
    # include "zend_config.w32.h"
    # define ZEND_PATHS_SEPARATOR        ';'
    #elif defined(NETWARE)
    # include <zend_config.h>
    # define ZEND_PATHS_SEPARATOR        ';'
    #elif defined(__riscos__)
    # include <zend_config.h>
    # define ZEND_PATHS_SEPARATOR        ';'
    #else
    # include <zend_config.h>
    # define ZEND_PATHS_SEPARATOR        ':'
    #endif

    后面去。

    还要修改zend_config.w32.h,把#define vsnprintf _vsnprintf这行注释掉。

    之后总算可以编译通过了。加载进来运行一下,终于看到了那句Congratulations。

    以后再想想写个什么扩展好,然后进一步研究下。

     

     


    历史上的今天:

    Tags: PHP 程序
    Trackback:

    评论

  • 专业人士......