簡體   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