在Windows上遇到X64编译问题。 使用VC14和X64作为目标。 在同一台机器和相同的设置X86版本编译正常。 使用指令从以下链接编译X64:
https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2
D:\php-sdk2\php-sdk-binary-tools\phpdev\vc14\x64\php-7.1.8-src
$ nmake
Microsoft (R) Program Maintenance Utility Version 14.00.23506.0
Copyright (C) Microsoft Corporation. All rights reserved.
Recreating build dirs
bison.exe --output=Zend/zend_ini_parser.c -v -d -p ini_ Zend/zend_ini_pa
rser.y
bison.exe --output=Zend/zend_language_parser.c -v -d -p zend Zend/zend_l
anguage_parser.y
type ext\pcre\php_pcre.def > D:\php-sdk2\php-sdk-binary-tools\phpdev\vc1
4\x64\php-7.1.8-src\x64\Release_TS\php7ts.dll.def
"" -h win32\ -r D:\php-sdk2\php-sdk-binary-tools\phpdev\vc14\x64\php-7.1
.8-src\x64\Release_TS\ -x D:\php-sdk2\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.
NMAKE : fatal error U1077: '"' : return code '0x1'
Stop.
以下是我的配置选项:
D:\php-sdk2\php-sdk-binary-tools\phpdev\vc14\x64\php-7.1.8-src
$ configure --disable-all --enable-cli --enable-cgi --enable-apache2-4handler
PHP Version: 7.1.8
在configure命令生成后检查了Makefile。发现有线:
$(MCFILE): win32\build\wsyslog.mc
$(MC) -h win32\ -r $(BUILD_DIR)\ -x $(BUILD_DIR)\ win32\build\wsyslog.mc
并在Makefile MC中由此行配置:
MC="$(MC)"
看起来MC被初始化为null(“”),这就是Makefile失败的方式。什么是MC及其使用的是什么?