在 MS VS 2005中 编译PHP时解决“不能分配常量大小为 0 的数组”错误的临时办法

 在 MS Visual Studio 2005 中开发 PHP扩展时可能会遇到“不能分配常量大小为 0 的数组” 的编译错误:
======================================
1>C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/stat.inl(44) : error C2466: 不能分配常量大小为 0 的数组
1>C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/stat.inl(49) : error C2466: 不能分配常量大小为 0 的数组
1>C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(39) : error C2466: 不能分配常量大小为 0 的数组
1>C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(44) : error C2466: 不能分配常量大小为 0 的数组
1>C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(49) : error C2466: 不能分配常量大小为 0 的数组
1>C:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(78) : error C2466: 不能分配常量大小为 0 的数组
======================================

我的解决的办法是:

在vc的 c:\program files\microsoft visual studio 8\vc\include\malloc.h 文件中找到:

#define _STATIC_ASSERT(expr) typedef char __static_assert_t[ (expr) ]

将这一行改为:

#ifdef PHP_WIN32
#define _STATIC_ASSERT(expr) typedef char __static_assert_t[ (expr)?(expr):1 ]
#else
#define _STATIC_ASSERT(expr) typedef char __static_assert_t[ (expr) ]
#endif

发表评论

您的电子邮箱地址不会被公开。