解決Windows上編譯PHP7.1拓展的錯誤

轉載請註明文章出處: https://tlanyan.me/solve-buil...

接上篇Windows編譯PHP7.2拓展,覺得編譯PHP7.1的拓展應該水到渠成,馬到成功。哪知道編譯PHP7.1拓展出現了新問題,折騰更超7.2。php

第一個問題是VC15(visual studio 2017)不能編譯PHP7.1的拓展,因此須要安裝VC14(visual studio 2015)或其編譯工具。從巨硬官網下載2015要登陸,還要訂閱「Visual Studio Dev Essentials」計劃。看着安裝程序顯示須要佔用9個G的硬盤空間,50G的C盤一樣感到菊緊。windows

安裝好VC14,開始按照流程編譯PHP拓展,新的問題出現了:"NMAKE : fatal error U1077: '"' : return code '0x1'"。向上回溯編譯信息,具體錯誤點是:php7

"" -h win32\ -r D:\PHP2Compile\php-sdk-binary-tools\phpdev\vc14\x64\php-7.1
.8-src\x64\Release_TS\ -x D:\PHP2Compile\php-sdk-binary-tools\phpdev\vc14\x64\php-7
.1.8-src\x64\Release_TS\ win32\build\wsyslog.mc
'-h' is not recognized as an internal or external command,
operable program or batch file.

根據-h win32字符串,在Makefile中找到具體命令,因爲"MC"變化初始化爲空,因此只剩命令參數無具體指令名。那麼MC的值應該是什麼呢?Makefile其值則爲:"$(MC)",打開PHP7.2的Makefile,發現值是:"C:Program Files (x86)Windows Kits10bin10.0.17134.0x64mc.exe"。參考PHP7.2的方案將其值改爲:"C:Program Files (x86)Windows Kits8.1binx86mc.exe"。工具

繼續編譯,MT變量初始化錯誤致使相似問題。按照MC的處理方式將值改爲:"C:Program Files (x86)Windows Kits8.1binx86mt.exe"。ui

接下來編譯出現"NMAKE : fatal error U1077: 「rc」: return code「0x1」 Stop."。MC提示錯誤時上網查緣由看到過,沒想到我這裏多災多難,多爬出了幾個坑纔到別人的坑裏。想着這樣沒完沒了的處理一個個變量不是辦法,確定是哪裏的配置出了點問題。聯繫MC和MT變量,都是由於沒有找到具體exe文件致使。RC會不會也是這個問題呢?code

在「C:Program Files (x86)Windows Kits8.1binx86」下找rc.exe,果真發現這個程序。因此頗有多是由於PATH變量未設置正確致使的。右鍵「個人電腦」->「屬性」->「環境變量」,將「C:Program Files (x86)Windows Kits8.1binx86」的值加入用戶PATH變量,註銷從新登陸。再次編譯PHP7.1的程序和拓展,一鼓作氣,完美!字符串

總結

除了須要安裝visual studio 2015,剩下的問題都是同一個:VC14編譯工具未在PATH變量中,更新環境變量便可。get

相關文章
相關標籤/搜索