搜尋
首頁後端開發PHP7PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7 windows增加自訂擴充功能和編譯PHP原始碼

需要用到的材質

推薦教學:php7教學

①決定需要編譯的版本,查看PHPINFO,確定PHP版本,VC版本和PHP位數。根據PHP VC版本下載對應的Visual Studio或編譯器,圖下博主的版本是VC15 需要下載Visual Studio 2017版本

PHP7 windows增加自訂擴充和編譯PHP原始碼

②準備PHP原始程式碼依自己需要擴充的版本下載對應的WINDOWS原始碼下載位址(https://windows.php.net/download/)

③下載PHP-sdk套件(點選下載)(https://github.com/microsoft /php-sdk-binary-tools)

④本地需要有可以使用的PHP,並且配置了環境變數

⑤將下載的PHP-sdk存放後,將/bin目錄配置環境變數

開始操作

①依版本執行處理腳本,部落客是VC15 X64,所以執行php-sdk-vc15-x64.bat,如果沒有下載對應VC版本的Visual Studio和編譯器,處理腳本只會閃一下然後退出。

11PHP7 windows增加自訂擴充和編譯PHP原始碼

成功運行處理腳本

PHP7 windows增加自訂擴充和編譯PHP原始碼

#②執行命令phpsdk_buildtree phpdev,phpdev根據自己的喜愛可以修改(只是一個名稱)。執行完成後phpsdk_buildtree 腳本將根據目前使用的VC 版本建立路徑,並切換到新建立的目錄

PHP7 windows增加自訂擴充和編譯PHP原始碼

裡面會有一個deps資料夾,暫時先不管,把我們準備好的PHP原始碼放入deps同級目錄

PHP7 windows增加自訂擴充和編譯PHP原始碼

#進入解壓縮的php 原始碼目錄,運行phpsdk_deps -u 下載依賴包,網速太慢的朋友可以跳過這一步

③添加自定義PHP擴展

進入源代碼/ext 找到ext_skel_win32.php,注意:PHP7.3版本沒有這個文件,可以直接使用ext_skel

PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7.3版本可以用

PHP7 windows增加自訂擴充和編譯PHP原始碼

#PHP7.2就比較苦逼了,因為這個他是在運行LINUX腳本,windows沒有辦法直接執行,所以需要下載工具來執行,博主有安裝Git,Git集成了LINUX指令集,所以可以透過他運行,沒有安裝的朋友也可以下載Cygwin模擬環境

PHP7 windows增加自訂擴充和編譯PHP原始碼

#執行php ext_skel_win32.php --extname=響亮的名字

PHP7 windows增加自訂擴充和編譯PHP原始碼

執行成功後/ext下就會有這個資料夾

PHP7 windows增加自訂擴充和編譯PHP原始碼

1PHP7 windows增加自訂擴充和編譯PHP原始碼

我們只要修改my_test.c 和config.m4 就可以了,一個程式主體一個設定檔

進入my_test.c找到下圖中的函數

1PHP7 windows增加自訂擴充和編譯PHP原始碼

然後我們就能寫你的邏輯了

1PHP7 windows增加自訂擴充和編譯PHP原始碼

完成後我們開始編譯(注意:編譯是用VC打開的CMD,不是我們執行ext_skel_win32.php的CMD,如果已經退出了可以重新點擊VC15-x64.bat進入,當然PHP7.3可以忽略這點)

PHP7 windows增加自訂擴充和編譯PHP原始碼

進入原始碼的根目錄執行buildconf

1PHP7 windows增加自訂擴充和編譯PHP原始碼

#執行configure --help

1PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7.2版本會有一定的小問題,我們開啟configure.js檔案

1PHP7 windows增加自訂擴充和編譯PHP原始碼

另一種解決方法

開啟擴充原始碼的config.w32,找到// Otherwise, use ARG_ENABLE 這句註解刪除,重新執行buildconf

##執行成功後將會看到我們建立的擴充

1PHP7 windows增加自訂擴充和編譯PHP原始碼

執行configure --disable-all --enable-cli --enablie-my_test=shared,如果不加入shared 將不會有.dll檔案編譯出來

1PHP7 windows增加自訂擴充和編譯PHP原始碼

PHP7 windows增加自訂擴充和編譯PHP原始碼

可以看到我們的擴充即將起飛

執行nmake 開始編譯

2PHP7 windows增加自訂擴充和編譯PHP原始碼

編譯成功後來進入(博主是X64,如果編譯32位元的是X86)\x64\Release_TS

2PHP7 windows增加自訂擴充和編譯PHP原始碼

可以看到我們的擴充

2PHP7 windows增加自訂擴充和編譯PHP原始碼

################################################ ######擴展PHP如何使用應該不用再寫下去了,不過如果擴展使用有問題的話,可以執行nmake clean,重新編譯一下在使用,如果還出現了問題那就說明你選擇編譯版本不對應你使用的PHP版本。 ###

以上是PHP7 windows增加自訂擴充和編譯PHP原始碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。