碰到了不少問題 ,但最終都解決了,感受不錯。php
1)下載 php source, php sdk, 以及 win32ps的源代碼windows
2) 參照下面的鏈接進行編譯。php7
https://wiki.php.net/internals/windows/stepbystepbuildui
注意點:spa
a) 設置phpsdk_setvars.bat環境變量以前,設置vc 的環境變量。 .net
"D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64
b) 文章介紹的目錄結構太深了,我這樣的結構也是沒有問題的。code
SDK:D:\tool\php-sdkblog
php source: D:\proj\php-srcget
win32ps: D:\proj\pecl\win32ps-1.0.1it
c) 加上 "=shared" 就能夠編譯 extension dll 了(要不就會直接靜態鏈接到php)
configure --disable-all --enable-cli --enable-win32ps=shared
3) 源代碼的修改。
a) MAKE_STD_ZVAL 被php7 廢除了。 因此,改爲相似下面的語句
// MAKE_STD_ZVAL(tms); zval tms_instance; tms = &tms_instance;
b) 運行時,加載extension 會出現 【PHP Startup: Invalid library maybe not a PHP library 】錯誤
在win32ps.c 加上下面的代碼,從新編譯
#ifdef HAVE_CONFIG_H #include "config.h" #endif #ifdef COMPILE_DL_WIN32PS ZEND_GET_MODULE(win32ps) #endif
以上。