windows環境下php和Php擴充套件編譯,擴充套件dll檔案編譯
工作過程中需要編譯php擴充套件的dll格式檔案 , 經過1天的折騰,終於編譯出來了,下面以編譯php5.3.28 下runkit擴充套件為例 , 官方的windows環境下php編譯過程參考下面這兩篇文章:
php5.3.28 , runkit
編譯的過程基本就是跟文件一致 , 注意的是 ,runkit原始碼建議去github下載最新的 , 要不可能編譯出錯
runkit:
windows環境下編譯php最難的就是環境搭建了 ,包括 vs2008安裝、windows SDK6.1安裝。環境搭建好了後
編譯工作
1、建立編譯目錄“C:\php_sdk”
2、解壓php-sdk-binary-tools-20110915.zip裡面的檔案到php_sdk目錄下
3、在開始選單找到並開啟Windows SDK CMD Shell (注意一定是SDK的shell , 不是DOS操作的cmd視窗),然後執行
- setenv /x86 /xp /release //這一句一定要執行成功,要不怎麼都不會編譯成功
- cd php_sdk
- bin\phpsdk_setvars.bat
- bin\phpsdk_buildtree.bat phpdev
執行後,目錄下會生成phpdev資料夾
4、進入C:\php_sdk\phpdev\vc9\x86\,把deps-5.3-vc9-x86.7z解壓到該目錄下,覆蓋deps資料夾。(php sdk)
5、把php原始碼也解壓到x86目錄下。
6、把runkit壓縮包內容解壓到php解壓後原始碼下的ext目錄下,並把資料夾名runkit-master改為runkit
7、在x86目錄下建立obj資料夾,用於儲存編譯時生成的檔案
8、執行以下命令,用於建立php編譯配置
- cd phpdev\vc9\x86\php5.3-201308211030
- buildconf
- configure --help >..\configure_help.txt
-
configure --disable-all --enable-cli --enable-runkit=shared --enable-object-out-dir=..\obj
注:配置中的--enable-runkit=shared意思是 memcache 以 dll 形式生成,否則就和php整合在一起了。
如果提示bison.exe不存在,執行命令,再重新執行下面的操作(經過上面的配置後,bison.exe應該在 c:\php_sdk\bin目錄下 , 把這個目錄放到環境變數中就行了)
- set path=%path%;C:\php_sdk\bin
9、編譯php,執行以下命令
- nmake
10、如果想打包php,執行以下命令
- nmake snap
到這裡,編譯工作應該結束了。可以在C:\php_sdk\phpdev\vc9\x86\obj\ReleaseTS\目錄中找到php_memcache.dll