繁体   English   中英

将php扩展名编译为dll

[英]Compiling a php extension into a dll

最近几天,我一直在尝试使用运算符重载扩展(pecl.php.net/package/operator),该扩展显然已更新为与5.3和5.4兼容。

我已经尝试使用本指南在Windows(64位Windows 7)中使用PHP 5.4和Windows SDK 7.1进行编译,但是没有运气。 因此,我尝试使用PHP 5.3和Windows SDK 6.1进行此操作,并且可以成功地使用配置“ configure --disable-all --enable-cli --enable-operator”然后“ nmake”进行编译。 问题是它不会为运算符扩展程序生成dll文件,而是我得到的是this ,这对我来说显然毫无用处。 我想要的是一个可以用于本地WampServer安装程序的dll。

尝试从pecl.php.net站点使用operator-0.4.1时遇到致命错误,因此我从git存储库(github.com/php/pecl-php-operator)下载并编译了该错误产生了.obj,.idb和.sbr文件。

你必须做

configure --disable-all --enable-cli --enable-operator=shared

否则它是静态编译的。

无论如何,如果要与WampServer一起使用,则二进制文件可能无法工作,因为如果我没有记错的话,WampServer是根据VC10 C运行时库编译的,而您链接的指南则指示您使用Visual Studio 2008(随VC9)。 您将需要使用VC10编译器(我认为它与Windows SDK 7.1捆绑在一起,因此您可以下载该文件并跳过Visual Studio)。

进入扩展根路径,并修改config.w32

EXTENSION('redis', sources); to EXTENSION('redis', sources,true);

buildconf --force

configure --enable-xx 

nmake

你会得到php-redis.dll

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM