編碼的世界 / 優質文選 / 文明

windows環境下php和Php擴展編譯,擴展dll文件編譯


2022年7月10日
-   

工作過程中需要編譯php擴展的dll格式文件 , 經過1天的折騰,終於編譯出來了,下面以編譯php5.3.28 下runkit擴展為例 , 官方的windows環境下php編譯過程參考下面這兩篇文章:
https://wiki.php.net/internals/windows/stepbystepbuild
http://blog.csdn.net/mycwq/article/details/10165955
php5.3.28 , runkit
編譯的過程基本就是跟文檔一致 , 注意的是 ,runkit源碼建議去github下載最新的 , 要不可能編譯出錯
runkit:
https://github.com/zenovich/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窗口),然後執行
[plain] 
view plain
copy
setenv /x86 /xp /release    //這一句一定要執行成功,要不怎麼都不會編譯成功 cd php_sdk   binphpsdk_setvars.bat   binphpsdk_buildtree.bat phpdev  
執行後,目錄下會生成phpdev文件夾
4、進入C:php_sdkphpdevvc9x86,把deps-5.3-vc9-x86.7z解壓到該目錄下,覆蓋deps文件夾。(php sdk)
5、把php源代碼也解壓到x86目錄下。
6、把runkit壓縮包內容解壓到php解壓後源碼下的ext目錄下,並把文件夾名runkit-master改為runkit
7、在x86目錄下創建obj文件夾,用於保存編譯時生成的文件
8、執行以下命令,用於創建php編譯配置
[plain] 
view plain
copy
cd phpdevvc9x86php5.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_sdkin目錄下 , 把這個目錄放到環境變量中就行了)
[plain] 
view plain
copy
set path=%path%;C:php_sdkin  
9、編譯php,執行以下命令
[plain] 
view plain
copy
nmake  
10、如果想打包php,執行以下命令
[plain] 
view plain
copy
nmake snap  
到這裏,編譯工作應該結束了。可以在C:php_sdkphpdevvc9x86objReleaseTS目錄中找到php_memcache.dll

熱門文章