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

相關問題