转载请注明文章出处: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:\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"。

接下来编译出现"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变量中,更新环境变量即可。

解决Windows上编译PHP7.1拓展的错误相关推荐

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

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

  2. 手把手教你在Windows上编译Swift工具链

    2020/5/27更新:大家现在可以直接从Saleem Abdulrasool的Azure Pipeline中下载打包好的Swift Windows SDK了,在他的GitHub中找到swift-bu ...

  3. python 调用 tensorflow.dll_解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题...

    最近打算开始研究一下机器学习,今天在windows上装tensorflow花了点功夫,其实前面的步骤不难,只要依次装好python3.5,numpy,tensorflow就行了,有一点要注意的是目前只 ...

  4. Windows上编译libpng

    Windows上编译libpng 下载libpng 1.5.10并解压到[工作目录]/png/libpng-1.5.10 用CMake选择png/libpng-1.5.10目录并Configure: ...

  5. Windows上编译OpenEXR

    Windows上编译OpenEXR 注意一定要使用1.0.1版本的ilmbase和1.6.1版本的openexr,其它版本的我测试过,OpenImageIO会编译失败. 解压ilmbase 1.0.1 ...

  6. 电脑显示没有被指定在上运行_win7运行QQ时出现“.dll没有被指定在Windows上运行,或者它包含错误”如何解决...

    最近有用户在win7系统中运行QQ的时候出现".dll没有被指定在 Windows 上运行,或者它包含错误.请尝试使用原始安装媒体重新安装程序,或联系您的系统管理员或软件供应商以获取支持.& ...

  7. 在windows上编译apr库apr-util库

    在windows上编译apr库apr-util库 环境: win10.VS2015企业版.CMake3.18.2 一.下载apr相关库 1.1)expat:expat-2.1.0.tar.gz 1.2 ...

  8. 手把手教你用delphi 10.2.3 在windows上编译Centos 7下的命令行程序,适合中小学生

    手把手教你用delphi 10.2.3 在windows上编译Centos 7下的命令行程序,适合中小学生 1.下载并安装     a)下载:delphicbuilder10_2_3_2631.iso ...

  9. 在Windows上编译FreeRDP

    在Windows上编译FreeRDP FreeRDP是RDP协议的一个开源实现,像mstsc远程桌面也是RDP协议的一个实现微软把它预装在Windows系统中.今天我们就讲下如何在Windows下编译 ...

最新文章

  1. Docker使用遇到问题Got permission denied while trying to connect to the Docker daemon socket解决方案
  2. python lxml读写xml
  3. php 调用 com,PHP调用COM函数
  4. 企业门户网站服务器,企业或个人门户网站对服务器前的重要准备 - 酷番云
  5. Objective-C 一些很基础的总结
  6. c语言删除数组重复元素并升序,C语言编程题: 编写函数,从一个已经排序的数组中删去某数后,该数组仍然有序....
  7. Java Web整合开发(37) -- SVN
  8. git学习笔记(三)
  9. 跨境电商热之下推ShopExpress,微盟靠什么出海寻新增量?
  10. 删掉启动分区进不了系统,复活办法(win10)
  11. matlab plotyy 坐标轴设置,[转载]Matlab plotyy画双纵坐标图实例
  12. 如何预防电脑辐射(转自j2medev)
  13. Python练习task2:条件与循环
  14. 20200321——IO 多路复用
  15. 一般人我不告诉的bug
  16. 《次第花开》学习笔记
  17. 配置maven的中央仓库mirro镜像
  18. 银河麒麟踩坑笔记——打包QT程序
  19. Apache-Apollo-MQTT最新地址
  20. 【Unity3D】10行代码实现一个简单的角色移动旋转脚本

热门文章

  1. 小干货:Linux 系统的备份恢复
  2. 企业运维经典面试题汇总(5)
  3. 利用 Zabbix 监控 mysqldump 定时备份数据库是否成功
  4. Linux 命令 之 【stat】 查看文件状态。 (包括修改时间)
  5. 苹果审核之遇到IPV6问题被拒的解决方法
  6. linux下安装mongodb,以及解决安装报错问题
  7. zabbix报错cannot set resource limit: [13] Permission denied解决方法
  8. 使用grep进行负匹配(匹配不包含foo的行)
  9. 仿真器如何工作以及如何编写? [关闭]
  10. word2016点击关闭后卡死问题