Windows 下如何使用 Microsoft 的工具编译 PHP

http://cn2.php.net/manual/zh/install.windows.building.php


从源程序编译

本章讲述了在 Windows 下如何使用 Microsoft 的工具编译 PHP。要在 CygWin 中编译 PHP,请参考 Unix 系统下的安装一章。

需求

要编译 PHP 需要 Microsoft 开发环境。推荐使用 Microsoft Visuaul C++ 6.0,不过 Visual C++ .NET 版也可以用。自 PHP 5 起也支持免费的 Microsoft .NET toolchain(需要安装 Windows Platform SDK,Visual C++ Toolkit 和 .NET Framework SDK)。

要释放下载的文件还需要一个 ZIP 文件的解压缩工具。Windows XP 和更新的版本中已经内置了此功能。

在开始之前,需要先下载:

最后,还需要 PHP 本身的源代码。可以通过» 匿名 CVS 得到最新的开发版本,一个» 快照或者最新发行版本的» 源程序的打包文件。

放到一起

下载了所有的包后需要将它们解压缩到适当的位置:

  • 建立一个工作目录作为解压缩后存放所有文件的地方,例如:C:\work
  • 在工作目录(C:\work)下新建一个目录 win32build 并将 win32build.zip 解压缩到其中。
  • 在工作目录(C:\work)下新建一个目录 bindlib_w32 并将 bindlib_w32.zip 解压缩到其中。
  • 将下载的 PHP 源程序解压缩到工作目录(C:\work)中。
  • 要编译库还需要(或下载现成的)头文件和库文件并分别放置到 C:\work\win32build\includeC:\work\win32build\lib 目录中去。
  • 如果没有安装有 bison 和 flex 的 Cygwin,那还需要将 C:\work\win32build\bin 目录放入系统 PATH 中,以使此工具可以被配置脚本找到。
经过以上步骤后目录结构应该如下:
+--C:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-5.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

如果不是用 » Cygwin 的话,还必须新建一个目录 c:\usr\local\lib 并将 bison.simplec:\work\win32build\bin 拷贝到 c:\usr\local\lib 中。

Note: 如果想使用 PEAR 以及舒适的命令行安装程序,就非要用 CLI-SAPI。有关 PEAR 和安装程序的更多信息见 » PEAR 网站。

编译 resolv.lib

必须编译 resolv.lib 库。自己决定是需要调试信息(bindlib - Win32 Debug)还是不需要(bindlib - Win32 Release),但是要记住自己的选择,因为用 Debug 模式编译的 resolv.lib 只能和 Debug 模式编译的 PHP 连接。编译适当的配置:

  • 图形界面用户,通过鼠标双击 C:\work\bindlib_w32\bindlib.dsw 运行 VC++。接着选择 Build => Rebuild All。
  • 命令行用户,确认要么注册了 C++ 环境变量,要么运行了 vcvars.bat,然后运行下面任意一行命令:
    • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"
    • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"
到这一步,应该得到了一个可用的 resolv.libc:\work\bindlib_w32\Debug 或者 Release 目录下。将此文件拷贝到 c:\work\win32build\lib 目录下并覆盖同名的文件。

用新编译系统编译 PHP(仅适用于 PHP >=5)

本节讲解了怎样用新编译系统编译 PHP >=5,此系统是基于 CLI 的,并且非常类似于 PHP 的 Unix 编译系统。

Note:

此编译系统在 PHP 4 中不可用。请参考用 DSW 文件编译 PHP一节。

开始之前要确保阅读了放到一起一节并且已经编译了所有所需的库,例如 » Libxml » ICU(PHP >= 6 中需要)。

首先应该打开一个用于 Visual Studio 的命令行提示符,应在开始菜单中能找到。正常的命令提示符可能不能用,因为没有设定所需的环境变量。输入类似 cd C:\work\php-5.x.x 的命令进入 PHP 源程序目录。现在可以开始配置 PHP 了。

第二步是运行 buildconf 批处理文件来扫描文件夹寻找 config.w32 来建立配置脚本。默认时此命令还会搜索以下目录:pecl; ..\pecl; pecl\rpc; ..\pecl\rpc。自 PHP 5.1.0 起,可以通过 --add-modules-dir 参数来改变此行为(例如 cscript /nologo win32/build/buildconf.js --add-modules-dir=../php-gtk2 --add-modules-dir=../pecl)。

第三步是配置。要查看可用的配置选项列表,输入 cscript /nologo configure.js --help 命令。选择了需要激活或禁止的选项之后,输入类似 cscript /nologo configure.js --disable-foo --enable-fun-ext 的命令。使用 --enable-foo=shared 将尝试将“foo”扩展库编译为共享的,可动态加载的模块。

最后一步是编译。只需运行命令 nmake 即可。所生成的文件(例如 .exe 和 .dll)将会放在 Release_TSDebug_TS 目录下(如果编译的是线程安全版的话),或者是 ReleaseDebug 目录。

作为可选项还可以运行 PHP 的测试套件,输入 nmake test 命令。如果要做一个特定的测试,可以用 'TESTS' 变量(例如 nmake /D TESTS=ext/sqlite/tests test 将只执行 sqlite 测试)。要删除编译过程中生成的文件,可以用 nmake clean 命令。

有个很有用的选项来编译快照:--enable-snapshot-build。此选项添加了一个新的编译模式(nmake build-snap)。这将尝试编译每一个可用的扩展库(默认为共享模块方式),但是忽略个别的扩展库或 SAPI 中的编译错误。

用 DSW 文件编译 PHP(PHP 4)

自 PHP 5 起不支持用 DSW 文件来编译 PHP,因为有了一个更灵活的系统。不过还是可以用此方法,但要记住此系统并不经常维护,因此编译可能会有问题。不过这是在 Windows 下编译 PHP 4 的唯一方法。

配置 MVC ++

第一步是配置 MVC++ 来准备编译。启动 Microsoft Visual C++,在菜单中选择 Tools => Options。在对话框中选择 directories 标签。按顺序把下拉选项选为 Executables,Includes 和 Library files。其内容应类似于:

  • Executable files:C:\work\win32build\bin,Cygwin 用户:C:\cygwin\bin
  • Include files:C:\work\win32build\include
  • Library files:C:\work\win32build\lib
编译

对于初学者最好的上手方法是编译 CGI 版本:

  • 图形界面用户,运行 VC++,选择 File => Open Workspace 菜单并选择 C:\work\php-4.x.x\win32\php4ts.dsw。接着选择 Build => Set Active Configuration 菜单并选择想要的配置,要么是 php4ts - Win32 Debug_TS 要么是 php4ts - Win32 Release_TS。最后选择 Build => Rebuild All。
  • 命令行用户,确认要么注册了 C++ 环境变量,要么运行了 vcvars.bat,然后从 C:\work\php-4.x.x\win32 目录下运行下面任意一行命令:
    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"
    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"
    • 到这一步,应该得到一个可用的 php.exeC:\work\php-4.x.x.\Debug_TSRelease_TS 目录下。

有可能通过编辑 main/config.win32.h 文件对编译做少量的定制。例如可以改变 php.ini 文件的默认位置,内置的扩展库,以及扩展库的默认位置。

下一步可能想要编译 CLI 版本,这是设计用于 PHP 的命令行方式。步骤和编译 CGI 版本相同,只除了要选择 php4ts_cli - Win32 Debug_TS 或者 php4ts_cli - Win32 Release_TS 项目文件。成功编译后会在 Release_TS\cli\ 或者 Debug_TS\cli\ 目录下找到 php.exe 文件。

要编译 SAPI 模块(php4isapi.dll)来将 PHP 和 Microsoft IIS 集成起来,将 active configuration 设为 php4isapi-whatever-config 并编译所需要的 dll。.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Windows 10系统中使用mingw32_64编译的OpenCV开发包,可以通过以下步骤进行操作: 1. 首先,在GitHub上下载mingw-w64的压缩包,并解压到目标文件夹。然后将该文件夹的路径添加到系统的环境变量中,以便在命令提示符中使用。 2. 下载OpenCV的源代码,并解压到指定的文件夹。 3. 在命令提示符中,进入OpenCV源代码文件夹,创建一个新的文件夹,用于存放编译生成的文件。 4. 在命令提示符中,使用以下命令配置编译: ``` cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install .. ``` 这将配置编译过程,并生成适用于Mingw64的Makefiles。 5. 接下来,使用以下命令进行编译: ``` mingw32-make ``` 这将开始OpenCV的编译过程。请注意,这可能需要一些时间,具体取决于您的系统配置和源代码大小。 6. 编译完成后,您可以使用以下命令进行安装: ``` mingw32-make install ``` 这将把编译生成的文件复制到指定的安装目录。 7. 最后,在您的项目中,使用#include <opencv2/opencv.hpp>来引用OpenCV库,并使用编译器的链接选项将编译生成的文件与您的代码连接在一起。 通过以上步骤,您可以在Windows 10系统中使用mingw32_64编译的OpenCV开发包进行开发工作。请确保您的系统和编译器版本与教程相符,以获得最佳的编译效果。 ### 回答2: 在Windows 10系统中使用MinGW 7.3.0 64位编译的OpenCV开发包是可行的。下面是一些步骤和注意事项: 1. 准备MinGW编译环境:在Windows系统上安装MinGW编译器,并配置好环境变量以便于命令行中能够找到相应的编译工具。 2. 下载OpenCV源代码:从OpenCV的官方网站上下载最新的源代码,解压到一个目录中。 3. 配置OpenCV编译参数:进入OpenCV源代码目录,创建一个新的文件夹用于存放编译输出。在命令行(或者在CMake界面)中运行CMake命令,指定源代码目录和编译输出目录,并添加适用于MinGW编译器的参数。 4. 检查依赖项:确保你的系统已经安装了OpenCV所需的所有依赖项,例如CMake、Git等。 5. 生成OpenCV项目:根据你的目标平台配置,生成Makefile或者其他适用于你的编译环境的项目文件。 6. 编译和安装OpenCV:运行编译命令,这将编译OpenCV的源代码并生成库文件以及其他开发工具。然后,运行安装命令,将OpenCV的库文件和头文件复制到指定的目录中,以便在其他项目中使用。 7. 测试 OpenCV 安装:创建一个简单的OpenCV项目并编译运行,确保OpenCV正确安装并可以正常工作。 需要注意的是,使用MinGW编译编译OpenCV可能会遇到一些兼容性问题,并且可能无法完全发挥OpenCV的全部功能。因此,建议在Windows系统中使用官方支持的编译器,如Microsoft Visual Studio,以获得更好的兼容性和性能。 ### 回答3: 在Windows 10系统中使用Mingw-w64编译的OpenCV开发包是可行的。Mingw-w64是一个基于MinGW的项目,可以在Windows使用GNU Compiler Collection(GCC)编译工具链。 首先,需要下载并安装Mingw-w64。可以从官方网站(https://mingw-w64.org/doku.php)下载适合您系统的版本,并按照指导进行安装。安装完成后,需要将Mingw-w64的bin目录添加到系统的环境变量中,以便在任何位置都能够使用gcc和g++编译命令。 接下来,需要下载OpenCV的源代码,并解压到一个合适的目录中。可以从OpenCV官方网站(https://opencv.org/releases/)下载最新版本的源代码。 在解压后的OpenCV目录中,创建一个build文件夹,并在命令行中进入该目录: ``` cd <opencv_directory>/build ``` 在该目录中,执行cmake命令,指定编译器(gcc或g++),生成Makefile: ``` cmake -G "MinGW Makefiles" -D CMAKE_C_COMPILER=gcc -D CMAKE_CXX_COMPILER=g++ .. ``` 接着,执行make命令进行编译和安装: ``` make make install ``` 编译过程可能会比较耗时,请耐心等待。 完成后,可以在系统上的任何位置使用Mingw-w64编译的OpenCV开发包。在代码中,引入OpenCV的头文件,并链接相应的库文件即可开始开发。 需要注意的是,Mingw-w64编译器与Windows SDK之间存在一些兼容性问题。如果你的开发环境中还有其他需要Windows SDK的项目,可能需要进行一些额外的配置和调整。 总之,通过使用Mingw-w64编译的OpenCV开发包,你可以在Windows 10系统上进行OpenCV相关的开发工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值