资讯专栏INFORMATION COLUMN

解决Windows上编译PHP7.1拓展的错误

qianfeng / 2545人阅读

摘要:安装好,开始按照流程编译拓展,新的问题出现了。参考的方案将其值改成。继续编译,变量初始化错误导致类似问题。所以很有可能是因为变量未设置正确导致的。

转载请注明文章出处:https://tlanyan.me/solve-buil...

接上篇Windows编译PHP7.2拓展,以为编译PHP7.1的拓展应该水到渠成,马到成功。哪知道编译PHP7.1拓展出现了新问题,折腾更超7.2。

第一个问题是VC15(visual studio 2017)不能编译PHP7.1的拓展,所以需要安装VC14(visual studio 2015)或其编译工具。从巨硬官网下载2015要登录,还要订阅“Visual Studio Dev Essentials”计划。看着安装程序显示需要占用9个G的硬盘空间,50G的C盘同样感到菊紧。

安装好VC14,开始按照流程编译PHP拓展,新的问题出现了:"NMAKE : fatal error U1077: """ : return code "0x1""。向上回溯编译信息,具体错误点是:

"" -h win32 -r D:PHP2Compilephp-sdk-binary-toolsphpdevvc14x64php-7.1
.8-srcx64Release_TS -x D:PHP2Compilephp-sdk-binary-toolsphpdevvc14x64php-7
.1.8-srcx64Release_TS win32uildwsyslog.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"。

接下来编译出现"NMAKE : fatal error U1077: “rc”: return code“0x1” Stop."。MC提示错误时上网查原因看到过,没想到我这里多灾多难,多爬出了几个坑才到别人的坑里。想着这样没完没了的处理一个个变量不是办法,肯定是哪里的配置出了点问题。联系MC和MT变量,都是因为没有找到具体exe文件导致。RC会不会也是这个问题呢?

在“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变量中,更新环境变量即可。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29272.html

相关文章

  • Debian9(Stretch) 下编安装LNMP环境

    摘要:下源码安装一前言之前,我的开发环境是。重新加载权限表将确保所有到目前为止所做的更改将立即生效。然后,和注意,如果是使用二进制包安装了及相应的开发库,不需要指定路径。五参考资料入门教程编译安装编译安装 Debian9下源码安装LNMP 一、前言 之前,我的开发环境是Windows-10+PHP-7.1+Nginx-1.10+MariaDB-10.1。 后面开发需要使用到memcached...

    ideaa 评论0 收藏0
  • Debian9(Stretch) 下编安装LNMP环境

    摘要:下源码安装一前言之前,我的开发环境是。重新加载权限表将确保所有到目前为止所做的更改将立即生效。然后,和注意,如果是使用二进制包安装了及相应的开发库,不需要指定路径。五参考资料入门教程编译安装编译安装 Debian9下源码安装LNMP 一、前言 之前,我的开发环境是Windows-10+PHP-7.1+Nginx-1.10+MariaDB-10.1。 后面开发需要使用到memcached...

    elisa.yang 评论0 收藏0

发表评论

0条评论

qianfeng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<