`
zhangcs053
  • 浏览: 33108 次
  • 性别: Icon_minigender_1
  • 来自: 徐州
社区版块
存档分类
最新评论

在windows上使用windows sdk编译php源码

    博客分类:
  • php
PHP 
阅读更多
推荐这篇文章:http://vladimirbarbarosh.blogspot.com/2011/05/compile-php-536-pecl-libevent-004.html
为了方便大家阅读,将内容转载给大家,不过还是鼓励去看原创博文。
Compile php-5.3.6 + pecl-libevent-0.0.4 + libevent-2.0.11-stable
Yesterday a friend of mine ask me to compile libevent PHP extension for Windows. It takes me about a whole day to figure out how to do that. Just because it takes so much time I decided to publish how to do that. (To be honest we make it together.)
SOURCES
The following is a list of sources that we will need:
PHP 5.3.6
PECL libevent-0.0.4
libevent-2.0.11-stable
TOOLS
The following is a list of tools that we well need:
Windows SDK for Windows Server 2008 and .NET Framework 3.5
PHP SDK Binary Tools
PHP 5.3 Depencencies (for the minimal PHP they are not necessary)
1. INSTALL WINDOWS SDK
I assume that they will be installed into c:\sdk directory.
2. CREATE C:\PHPSDK DIRECTORY
This is our workplace. I find it much easier to explain, read, and follow how to create it usingpseudo-code rather than words:
mkdir c:\phpsdk
pushd c:\phpsdk
        extract http://windows.php.net/downloads/php-sdk/php-sdk-binary-tools-20110512.zip
        bin\phpsdk_setvars.bat
        bin\phpsdk_buildtree.bat php-5.3.6
        pushd php-5.3.6\vc9\x86
                extract http://md.php.net/distributions/php-5.3.6.tar.bz2
                mv php-5.3.6 src
                extract http://windows.php.net/downloads/php-sdk/deps-5.3-vc9-x86.7z
        popd

        extract http://pecl.php.net/get/libevent-0.0.4.tgz
        rm package.xml
        mv libevent-0.0.4 php_libevent
        pushd php_libevent
                extract http://monkey.org/~provos/libevent-2.0.11-stable.tar.gz
        popd
popd
3. COMPILE MINIMAL PHP
cmd /e:on /v:on
        c:\sdk\bin\setenv.cmd /x86 /xp /release
        c:\phpsdk\bin\phpsdk_setvars.bat
        cd c:\phpsdk\php-5.3.6\vc9\x86\src
        buildconf
        configure --disable-all --enable-cli
        nmake
        rem The following command creates php-5.3.6-devel-VC9-x86
        rem directory which gives us extension developer's header
        rem and .lib files
        nmake snap
4. COMPILE LIBEVENT-2.0.11-STABLE
cmd /e:on /v:on
        c:\sdk\bin\setenv.cmd /x86 /xp /release
        c:\phpsdk\bin\phpsdk_setvars.bat
        cd c:\phpsdk\php_libevent\libevent-2.0.11-stable
        nmake -f Makefile.nmake
5. COMPILE PHP_LIBEVENT.DLL
This was the most trickier part.
cmd /e:on /v:on
        c:\sdk\bin\setenv.cmd /x86 /xp /release
        c:\phpsdk\bin\phpsdk_setvars.bat
        cd c:\phpsdk\php_libevent
        set phpdevdir=c:\phpsdk\php-5.3.6\vc9\x86\src\Release_TS\php-5.3.6-devel-VC9-x86
        set libeventdir=c:\phpsdk\libevent\libevent-2.0.11-stable

        cl libevent.c ^
                /c ^
                /Fophp_libevent.obj ^
                /DZEND_WIN32 ^
                /DPHP_WIN32 ^
                /DWIN32 ^
                /DZTS=1 ^
                /DZEND_DEBUG=0 ^
                /DCOMPILE_DL_LIBEVENT ^
                /I%phpdevdir%\include\Zend ^
                /I%phpdevdir%\include\main ^
                /I%phpdevdir%\include\TSRM ^
                /I%phpdevdir%\include ^
                /I%libeventdir%\WIN32-Code ^
                /I%libeventdir%\include ^
                /I%libeventdir%

        link php_libevent.obj ^
                /DLL ^
                php5ts.lib /LIBPATH:%phpdevdir%\lib ^
                libevent.lib /LIBPATH:%libeventdir% ^
                ws2_32.lib
6. TESTING PHP_LIBEVENT.DLL
cd c:\phpsdk\php-5.3.6\vc9\x86\src\Release_TS\php-5.3.6
copy php.ini-development php.ini
echo extension=c:\phpsdk\php_libevent\php_libevent.dll >> php.ini
php -m
FILES
• php-5.3.6-libevent-ts.zip
• phpsdk-libevent-skeleton.zip (skeleton of our workspace directory)
REFERENCES
• Build your own PHP on Windows
• How do I compile an extension for PHP 5.3 for windows as a DLL?
• Creating a PHP 5 Extension with Visual C++ 2005
• Creating a PHP Extension for Windows using Microsoft Visual C++ 2008
• Compiling PHP for Windows Vista using Visual C++ Express 2008 – Seriously!
分享到:
评论

相关推荐

    windows下编译php­beast扩展

    在Windows环境下编译PHP-beast扩展是一个较为复杂的过程,涉及到选择合适的编译器、设置编译环境、准备编译文件、以及执行具体的编译步骤。本文将详细说明如何在Windows系统中编译PHP-beast扩展,同时会提供必要的...

    nbiot_sdk-master.zip_NB-iot SDK源码_NBIOT与PHP对接_coap协议 java sdk_nb

    压缩包中的子文件“nbiot_sdk-master”很可能是SDK的主目录,里面可能包含了源码文件、编译脚本、文档和其他辅助材料。开发者在获取这个SDK后,需要解压并根据提供的文档或示例代码进行集成和开发,以实现NBIOT设备...

    php7.0 sdk

    开发者可以使用这些工具来编译PHP源代码,生成适用于PHP 7.0的二进制扩展。 6. **使用流程** - 安装SDK后,首先使用`phpize`设置构建环境。 - 创建PHP扩展的C源代码,根据`share`目录中的示例和文档编写。 - ...

    win10 x64 VS2019 PJSIP 音频通话编译流程

    在Windows 10 x64系统上,利用Visual Studio 2019进行编译,可以创建用于音频通话的DLL文件。以下是一份详细的编译流程,涵盖了从源码下载到编译环境配置的每一步。 1. 获取PJSIP源码:首先,你需要访问PJSIP的官方...

    Windows环境下PHP动态链接库开发研究.pdf

    因此,需要下载 PHP 的源代码文件,使用 PHP 官方提供的 PHP 扩展开发模板创建程序“骨架”,使用相应版本的 C 语言开发环境进行编译和调试,最后编译出所需要的 DLL 文件。 开发环境包括 Visual Studio 2008、...

    Windows下编译PHP5.4和xdebug全记录

    本文详细介绍了在Windows环境下如何编译PHP5.4和xdebug模块的全过程,对于希望在Windows系统上自行编译PHP环境的开发者来说,提供了宝贵的指导。在开始前,你需要准备好编译环境和相关的软件包,以下是编译所需的...

    PHP接口API文档转换SDK【神器】2015-12-24

    document_sdk可能是SDK的源代码或编译后的库文件,而document可能包含SDK的使用说明、示例代码或API文档本身。 综上所述,这个PHP接口API文档转换SDK是一个强大的工具,能够帮助开发者跨越多个平台(包括移动设备和...

    PHP企业微信会话存档扩展

    在企业微信的日常使用中,为了保障企业内部沟通的合规性、审计需求以及信息安全,企业微信提供了会话存档功能。这个功能允许企业保存并管理员工间的聊天记录,以便后续查阅或审计。而PHP作为广泛应用于Web开发的编程...

    Android交叉编译htop及使用方法

    ### Android交叉编译htop及使用方法 #### 一、htop简介 htop是一款功能强大的系统监控工具,它在传统的top基础上进行了大量的改进和...编译完成后,htop即可在Android平台上运行,为开发者提供丰富的系统监控功能。

    PHP接口API文档转换SDK【神器】2016-02-02

    在压缩包中的"document"文件可能包含了API的原始定义,而"document_sdk"文件可能包含了生成的SDK源码或预编译的库文件。开发者可以参考SDK的使用文档(通常也在压缩包内),学习如何将这个工具集成到自己的项目中。 ...

    7PAY支付-个人支付接口源码SDK v1.0 bulid20230718.zip

    一、源码源代码: 源代码是程序的原始编写形式,它包含了开发者用编程语言书写的指令,可供其他开发者阅读、学习和修改。7PAY支付的源码SDK提供的是未经过编译或打包的原始代码,开发者可以直接查看并理解整个支付...

    vs2015 源码编译 tightvnc-2.8.59-gpl

    vs2015 源码编译 tightvnc-2.8.59-gpl https://www.tightvnc.com/download.php vs2015 可以直接编译 vs2010 需要安装Win8 SDK8.1 然后,在desktop项目的属性里添加上include和lib include:(放在..后面) C:\...

    Windows下编译PHP和memcache扩展教程

    在Windows系统下手动编译PHP及其扩展memcache是一个对PHP开发者来说非常有价值的过程,尤其是当你需要对环境进行定制,或者需要调试扩展时。以下知识点详细介绍了如何在Windows环境下编译PHP和memcache扩展。 首先...

    华视电子SDK二次开发C#写的windwos服务

    开发者可以使用它来打开并编译整个项目,包括所有相关的源代码和资源。 2. `readIdCardClient`:可能是一个子项目或目录,包含了与读取身份证相关的客户端代码。客户端代码通常是与用户交互的部分,可能负责调用服务...

    VC 建立php扩展

    在提供的标签中,“源码”和“工具”暗示了我们需要处理源代码并可能使用一些开发工具。 描述中的链接指向了一个个人博客文章,虽然具体内容未提供,但可以推测博主可能分享了建立PHP扩展的具体步骤。通常,这个...

    vs.php_for_vs2010

    首先,我们要明确一点:在Windows上开发PHP扩展通常需要借助Microsoft的Visual Studio IDE,因为PHP的C语言接口需要使用Visual C++编译器。"vs.php_for_vs2010"项目就是为此目的而创建的,它提供了在Visual Studio ...

    jd-open-api-sdk-src:京东开放API的SDK原始码

    京东云开放API的SDK原始码为了深入了解京东开放平台提供的SDK ,我将他们提供的SDK反编译后,重新整理了一份SDK的源码。获得了源码后,首先我意识到的是这个SDK实现比较简单,主要功能就是将Java对象编码为JSON处理...

    php-t2sdk-ext:php扩展,调用t2sdk源码-php

    这个扩展使得开发者能够利用PHP语言方便地调用t2sdk的源代码,从而在PHP应用中实现特定的功能或服务。 【标签】"系统开源" 暗示了这个项目遵循开源原则,意味着源代码是公开的,允许用户查看、修改和分发。这为...

    PHP话费充值通道网站完整运营源码/全解密无授权源码

    开发者应确保源码在使用前进行安全审计,加固输入验证,避免直接拼接SQL语句,使用预编译语句,以及对敏感信息进行加密存储。 6. **错误处理与日志记录**:良好的错误处理机制是系统稳定运行的关键。源码中应该包含...

    JAVA上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

Global site tag (gtag.js) - Google Analytics