2

J'essaie de construire PHP à partir de la source par these instructions. La configuration fonctionne très bien, mais quand j'arrive à la partie nmake, les choses s'écroulent. Je n'ai aucune idée de pourquoi je reçois des erreurs sur les structures, les lignes référencées sont des fonctions!La syntaxe similaire provoque des erreurs de compilation étranges et répétées lors de la construction de PHP à partir de la source sur Windows

J'ai mis le problème 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 : ')' 

Répondre

1

Je viens de supprimer le premier argument des fonctions car elles ne semblaient pas être utilisées.

Maintenant, tout fonctionne ....

étrange ....

edit: je viens redownloaded la source

+0

La suppression des arguments des fonctions est généralement une mauvaise idée. Vérifiez que vos chemins d'inclusion (/ I) sont OK dans le fichier Make. – StasM

+0

Oui c'est. En guise de suivi, j'ai redessiné le code source et tout fonctionne la première fois, pas de suppression nécessaire. –

1

Êtes-vous sûr que zend_class_entry est défini comme un type de variable, peut-être que vous n'êtes pas un en-tête ou incluez quelque chose?

Je m'attendrais à ce que ce soit parce que PHP a été compilé pour Windows avant.

+0

qui fait sens, mais comment pourrais-je dire si elle est définie? –

+1

Essayez de définir les indicateurs du compilateur de sorte qu'il exécute le préprocesseur, mais ne compile pas les fichiers prétraités. Ensuite, vous pouvez passer en revue et voir exactement ce que le compilateur regarde. –