当前位置: 首页 > 后端技术 > PHP

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

时间:2023-03-29 21:07:14 PHP

解决在Windows上编译PHP7.1扩展报错扩展应该水到渠成,立竿见影。不知道编译PHP7.1扩展又有新问题,折腾的比7.2还要多。第一个问题是VC15(visualstudio2017)无法编译PHP7.1的扩展,所以需要安装VC14(visualstudio2015)或其编译工具。从Juhard官网下载2015登录订阅“VisualStudioDevEssentials”计划。看安装程序显示需要占用9G硬盘空间,50G的C盘也感觉吃紧了。安装好VC14后,开始按流程编译PHP扩展,出现新问题:“NMAKE:fatalerrorU1077:'"':returncode'0x1'”。回溯编译信息,具体错误点为:""-hwin32\-rD:\PHP2Compile\php-sdk-binary-tools\phpdev\vc14\x64\php-7.1.8-src\x64\Release_TS\-xD:\PHP2Compile\php-sdk-binary-tools\phpdev\vc14\x64\php-7.1.8-src\x64\Release_TS\win32\build\wsyslog.mc'-h'不是内部或外部命令,也不是可运行的程序或批处理文件。根据to-hwin32string,在Makefile中找到具体的命令,由于“MC”变化初始化为空,只有命令参数,没有具体的命令名,那么MC的值应该是多少呢?Makefile的值是:"$(MC)",打开PHP7.2的Makefile,找到值为:"C:ProgramFiles(x86)WindowsKits10bin10.0.17134.0x64mc.exe"。参考PHP7.2的解决办法,改它的值是:“C:ProgramFiles(x86)WindowsKits8.1binx86mc.exe”。继续编译,MT变量初始化错误导致类似问题。根据MC的处理方式,将值改为:“C:ProgramFiles(x86)WindowsKits8.1binx86mt.exe”。编译后,“NMAKE:fatalerrorU1077:“rc”:returncode“0x1”Stop.”出现了,MC提示错误的时候,我在网上查了下原因,看到了,没想到我的地方到处都是灾祸,想着这样没完没了地处理变量,不是一个选项。一定是哪里配置有问题,联系MC和MT变量是没有找到具体的exe文件导致的,请问RC也会有这个问题吗?在“C:ProgramFiles(x86)WindowsKits8.1binx86”下找到rc.exe,然后找到了这个程序。所以很有可能是PATH变量没有设置正确。右击“我的电脑”->“属性”->“环境变量”,将“C:ProgramFiles(x86)WindowsKits8.1binx86”到用户PATH变量,注销重新登录。再次编译PHP7.1的程序和扩展,一气呵成,完美!总结除了需要安装visualstudio2015外,剩下的问题都是一样的:VC14编译工具不在PATH变量里,更新环境v即可可变的。