使用VC9编译PHP 5.5的错误

时间:2015-10-30 14:46:29

标签: php apache x86

根据页面上的信息https://wiki.php.net/internals/windows/compiler我正在尝试编译PHP5.5以获得VC9-x86支持 - 我绝对需要这个版本。

它应该有效,如页面所述。

我正在浏览https://wiki.php.net/internals/windows/stepbystepbuild页面上的说明,但收到了一些错误:

ext\standard\info.c(502) : error C2065: 'PRODUCT_SERVER_FOUNDATION' : undeclared  identifier
ext\standard\info.c(502) : error C2051: case expression not constant
ext\standard\info.c(532) : error C2065: 'PRODUCT_STORAGE_EXPRESS_SERVER_CORE' : undeclared identifier
ext\standard\info.c(532) : error C2051: case expression not constant
ext\standard\info.c(535) : error C2065: 'PRODUCT_STORAGE_STANDARD_SERVER_CORE' :
 undeclared identifier
ext\standard\info.c(535) : error C2051: case expression not constant
ext\standard\info.c(538) : error C2065: 'PRODUCT_STORAGE_WORKGROUP_SERVER_CORE'
: undeclared identifier
ext\standard\info.c(538) : error C2051: case expression not constant
ext\standard\info.c(541) : error C2065: 'PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE'
 : undeclared identifier
ext\standard\info.c(541) : error C2051: case expression not constant
ext\standard\info.c(544) : error C2065: 'PRODUCT_STARTER_N' : undeclared identif
ier
ext\standard\info.c(544) : error C2051: case expression not constant
ext\standard\info.c(547) : error C2065: 'PRODUCT_PROFESSIONAL' : undeclared iden
tifier
ext\standard\info.c(547) : error C2051: case expression not constant
ext\standard\info.c(550) : error C2065: 'PRODUCT_PROFESSIONAL_N' : undeclared id
entifier
ext\standard\info.c(550) : error C2051: case expression not constant

我该如何解决?

1 个答案:

答案 0 :(得分:0)

最后我找到了解决方案。

报告的常量没有定义,原因很简单:SDK6.1不包含它们。 常量在文件C:\ php-sdk \ phpdev \ vc9 \ x86 \ php-5.5.30-src \ ext \ standard \ winver.h中定义,但它们由始终存在的常量值决定:

#ifndef PRODUCT_ULTIMATE

我用第一个缺失的常量改为:

#ifndef PRODUCT_STORAGE_EXPRESS_SERVER_CORE // SM PRODUCT_ULTIMATE

另外,我在下面的某些行中添加了缺失值:

#define PRODUCT_STARTER_E                           0x00000042  //SM

通过这种方式,我可以编译php.exe和php.lib库。