Windows中筹建PHP扩展开发环境
Windows中搭建PHP扩展开发环境
一、提前准备
二、编译PHP
首先下载php-sdk,先下载较新的php-sdk-binary-tools-20110915.zip,解压到
f:\php_stdio\php-sdk
目录下。注意,解压后,这个目录下应该有bin和script子目录。
开一个cmd窗口,切换到f:\php_stdio\php-sdk目录下,运行vcvarsall.bat来设置好编译环境变量。
VS2008安装路径\VC\vcvarsall.bat
这里vcvarsall.bat的具体目录要根据你自己的安装位置而定。
接着,进入在cmd窗口里继续运行以下命令:
bin\phpsdk_setvars.bat
bin\phpsdk_buildtree.bat php54dev
这样,在f:\php_stdio\php-sdk目录下又多了一个php54dev目录。
接着继续将deps解压到
f:\php_stdio\php-sdk\php54dev\vc9\x86\
目录下。原来这个目录下的deps目录下的所有子目录均是空目录,解压后,应该复制进很多必要的模块/扩展所需的库文件。
接下来,将PHP-5.4.5源码目录复制一份到
f:\php_stdio\php-sdk\php54dev\vc9\x86\
目录下。进入php源码目录
cd f:\php_stdio\php-sdk\php54dev\vc9\x86\php-5.4.5
运行
buildconf
然后就可以先试着编译php了。最开始,一般编译尽可能少的模块,先让核心能正常编译出来:
configure --disable-all --enable-cli
这一步的主要目的是生成config.w32.h,如果需要生成PHP,可以继续执行
三、创建新扩展my_fopen


cd f:\php_stdio\php-sdk\php54dev\vc9\x86\php-5.4.5\extphp ext_skel_win32.php --extname=my_fopen




四、编译、使用扩展


五、编译新扩展遇到的问题
mspdbsrv.exe 或 mspdbcore.dll 丢失或者其版本和 mspdb80.dll 的版本不同,确定这三个文件的相同版本安装在系统里。
在VC安装目录下的\Common7\IDE 目录下拷贝这三个文件到 安装目录下的VC\bin下即可
2. ../main/config.w32.h打开失败
PHP源码进行configure后才会产生config.w32.h
3.无法打开输入文件“php5ts.lib”
设置工程属性页中的C++->高级->编译为改为编译为C代码(/TC),链接器->附加库目录加一项PHP二进制包的dev目录。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
