php WIN下编译注意问题

下载VC2012,安装
打开CMD 须运行 vcvars32.bat (初始化VC编译环境)

下载PHP WIN编译包:http://windows.php.net/downloads/php-sdk/
    下载:
        php-sdk-binary-tools-20110915.zip
    解压,CMD进入该目录,运行
    bin\phpsdk_setvars.bat
    bin\phpsdk_buildtree.bat php5dev
    会在当前目录下生成 php5dev 文件夹
    根据你的VC版本,需要编译版本,进入 php5dev/vc*/x**/
    会有 deps 文件夹,根据PHP版本下载:
        deps-5.*-vc11-x86.7z
    解压把压缩包里的deps内容放入当前文件夹的deps目录中
    根据PHP版本下载PHP源码:http://php.net/downloads.php
    下载php-5.*.*.tar.gz 解压到当前目录:php5dev/vc*/x**/
    进入php源码目录执行:
        #生成configure文件
        buildconf
        #生成Makefile文件
        configure --enable-**
        #根据需求添加指定扩展
        #如果需要把扩展编译成DLL,编译参数为:
        --enable-**=shared
        #执行编译
        nmake
        编译出来的文件在 Release_TS

只编译指定扩展可以使用 configure --disable-all --enable-cli --enable-***=shared

一般出现php5ts.dll.def : error LNK2001: 无法解析的外部符号 ** 表示依赖的外部库没找到
使用外部库:
    在执行了 configure 后会在源码目录生成 Makefile 文件,修改该文件
    1. 添加库目录:
    LDFLAGS=/nologo /libpath:"E:\php\phpsdk\php55dev\vc9\x86\deps\lib" /libpath:"你的库LIB目录"  
    2. 添加头文件
    CFLAGS=/nologo /FD ...(略)  /I "你的include头文件目录"  /D FD_SETSIZE=256
    3. 指定库
    LIBS=kernel32.lib ...(略) 你的库.lib

编译你的扩展
    在PHP源码目录 ext 添加扩展
    在WIN下编译扩展的配置文件为:config.w32 必须要有该文件 非 config.m4
    config.w32 文件注解
    #表示编译参数,同时会有 PHP_TEST 变量 如果第三个参数为 yes 表示默认编译
    ARG_ENABLE("test", "for php_test support", "no");
    #一般会有这个判断 表示要编译才添加编译扩展
    if (PHP_TEST == "yes") {
        #参数1 编译名
        #参数2 所有的C文件
        #参数3 null 表示共享编译 true 表示编译进PHP
        EXTENSION("screw", "**.c **.h /*你的C文件*/", null);
    }

时间: 2024-07-31 00:01:49

php WIN下编译注意问题的相关文章

win下编译ffmpeg库,Compile and build ffmpeg library and dll on Windows x64( 正版)

转载请注明:来自EricKing,thanks 从没想到编一个library这么坑爹,再次提醒各位百度的东西只能参考,想节约时间还是要到官网上去查看docum.不废话了,开始详细过程: ——>1.搭建Win下的GCC编译环境(因为win下vs不支持ffmpeg的compile 和build,官网上也有说这一点) ——>2.下载latest ffmpeg source(后面附官网地址),想办法将编译后的文件做成dll,这是win下编程调试的核心 (这里就用到vs下的一个vc的bash文件叫vcv

如何在win下编译thunderbird

最近突然想研究一下thunderbird的实现,于是在WIN2K3下对其进行了系列的编译,特将编译的一些心得与大家共享.其实编译过程已经非常简单了,本文以VC8 ( VISUAL STUDIO 2005)来进行编译.进行如下准备.thunderbird的项目地址是 http://www.mozilla.org/projects/thunderbird 1.下载源代码,可以用CVS下,见http://developer.mozilla.org/en/docs/Download_Mozilla_So

解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题

PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: [plain] view plain copy sudo ./build.sh 但是却没有任何反应.于是我换了指令,用 [plain] view plain copy chmod u+x build.sh ./build.sh 报错 "build.sh  /bin/bash^M: 坏的解释器:没有那个文件或目

解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题

PS背景:我在公司做sdk 的pc端开发,所以经常会在win下编译通过之后跑到linux下再运行一次已确保能支持多平台. 今儿在win下跑完一程序,然后放到linux下跑的时候,我用指令: sudo ./build.sh 但是却没有任何反应.于是我换了指令,用 chmod u+x build.sh ./build.sh 报错 "build.sh  /bin/bash^M: 坏的解释器:没有那个文件或目录". 以前遇到这个问题,换了几种编译方法就解决了,单这次还是不行,于是又换:bash

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin

CentOS 6.5下编译安装httpd+mysql+php+phpMyAdmin+cacti+nagios 一.安装环境 Linux系统:CentOS 6.5 Apache版本:http-2.4.12 MySQL版本:MySQL 5.6.24 PHP版本:PHP-5.6.8 基本的安装顺序为:先安装httpd,然后安装mysql,最后安装PHP. 软件包: [[email protected] httpdbao]# ll total 334908 -rwxrw-rw-. 1 root root

移植 libuv 到 Visual C++ 6.0 并支持在 Windows XP 系统下编译

移植版的 libuv:https://github.com/liigo/libuv-vc6 (支持VC6和XP,作者Liigo). 我从一年前(大概2013年6,7月份)开始在业余时间做这项移植工作,走走停停,陆续用了一两个月的时间,才基本完成.这期间做了详细的移植记录,现在发布出来,希望对某些人有用.就在昨天(2014年7月12日),我又把移植的代码同步到最新的libuv(https://github.com/joyent/libuv)并发布到Github上:但是之前的移植记录没有变更,或许在

又是正版!Win下ffmpeg源码调试分析二(Step into ffmpeg from Opencv for bugs in debug mode with MSVC)

最近工作忙一直没时间写,但是看看网络上这方面的资源确实少,很多都是linux的(我更爱unix,哈哈),而且很多是直接引入上一篇文章的编译结果来做的.对于使用opencv但是又老是被ffmpeg库坑害的朋友们,可能又爱又恨,毕竟用它处理和分析视频是第一选择,不仅是因为俩者配合使用方便,而且ffmpeg几乎囊括了我所知道的所有解编码器,但是正是因为这个导致了一些bug很难定位,所以有必要考虑一下如何快速定位你的ffmpeg bug. sorry,废话多了.首先给个思路: 1.使opencv 的hi

win 下g++ 安装、环境配置等

工具:eclipse for c++: 因为eclipse没有集成c++的编译器及运行环境,所以需要自己额外安装g++等: 方法: 使用MinGW来下载和安装需要的工具: 下载地址:http://www.mingw.org/download.shtml 1.安装与下载: 需要安装的东西,(网上截图) 安装完:MinGW后, 会弹出如下界面: 之后,右键需要安装的文件, 然后"Make for installation", 之后选中左上角的"Installation"

firefly的环境搭建(2013年9月25日最新,win下最详图文)

原地址:http://bbs.gameres.com/forum.php?mod=viewthread&tid=224026 一.安装PythonFirefly是采用Python编写的高性能.分布式游戏服务器框架,所以使用Firefly的前提是必须安装Python.Python在Linux.windows等操作系统下都有相应的版本,不管在什么操作系统下,它都能够正常工作.除非使用平台相关功能,或特定平台的程序库,否则可以跨平台使用.1.windows下安装Python1)下载对应系统的pytho