2

我试图根据these指令从源代码构建PHP。配置工作得很好,但当我到达nmake部分时,事情就会崩溃。我不知道为什么我得到有关struct的错误,引用的行是函数!在Windows上从源代码构建PHP时,类似的语法会导致奇怪的重复编译错误

我已经把有问题的zend_interfaces.c here

Zend\zend_interfaces.c(320) : error C2332: 'struct' : missing tag name 
Zend\zend_interfaces.c(320) : error C2143: syntax error : missing ')' before 'type' 
Zend\zend_interfaces.c(320) : error C2055: expected formal parameter list, not a type list 
Zend\zend_interfaces.c(320) : error C2143: syntax error : missing ';' before ',' 

Zend\zend_interfaces.c(320) : error C2059: syntax error : ')' 
Zend\zend_interfaces.c(343) : error C2332: 'struct' : missing tag name 
Zend\zend_interfaces.c(343) : error C2143: syntax error : missing ')' before 'type' 
Zend\zend_interfaces.c(343) : error C2055: expected formal parameter list, not a type list 
Zend\zend_interfaces.c(343) : error C2143: syntax error : missing ';' before ',' 

Zend\zend_interfaces.c(343) : error C2059: syntax error : ')' 
Zend\zend_interfaces.c(375) : error C2332: 'struct' : missing tag name 
Zend\zend_interfaces.c(375) : error C2143: syntax error : missing ')' before 'type' 
Zend\zend_interfaces.c(375) : error C2055: expected formal parameter list, not a type list 
Zend\zend_interfaces.c(375) : error C2143: syntax error : missing ';' before ',' 

Zend\zend_interfaces.c(375) : error C2059: syntax error : ')' 
Zend\zend_interfaces.c(400) : error C2143: syntax error : missing ')' before 'type' 
Zend\zend_interfaces.c(400) : error C2055: expected formal parameter list, not a type list 
Zend\zend_interfaces.c(400) : error C2143: syntax error : missing ';' before ',' 

Zend\zend_interfaces.c(400) : error C2059: syntax error : ')' 
Zend\zend_interfaces.c(490) : error C2332: 'struct' : missing tag name 
Zend\zend_interfaces.c(490) : error C2143: syntax error : missing ')' before 'type' 
Zend\zend_interfaces.c(490) : error C2055: expected formal parameter list, not a type list 
Zend\zend_interfaces.c(490) : error C2143: syntax error : missing ';' before ',' 

Zend\zend_interfaces.c(490) : error C2059: syntax error : ')' 

回答

1

我刚刚从函数中删除了第一个参数,因为它们似乎没有被使用。

现在一切工程....

奇怪....

编辑:我只是重新下载源

+0

从函数中删除参数通常是非常糟糕的主意。检查makefile中包含的路径(/ I)是否正确。 – StasM 2009-12-21 05:59:11

+0

是的。作为后续工作,我重新下载了源代码,并且所有内容都是第一次运行,不需要删除。 – 2009-12-21 17:48:15

1

你肯定zend_class_entry被定义为一个变量的类型,也许你不包括报头或东西吗?

我认为这将是因为很明显,PHP已经编译为Windows之前。

+0

是有道理的,但我怎么会告诉我们,如果要定义呢? – 2009-12-04 02:56:59

+1

尝试设置编译器标志,使其运行预处理器,但不编译预处理文件。然后,您可以查看编译器正在查看的内容。 – 2009-12-04 03:10:42