解决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

相关文章
相关标签/搜索