2010-04-23 24 views
1

J'essaye de construire un projet Xcode avec GNUStep-make. À l'heure actuelle, le projet est très petit (3 classes), mais il passera à des centaines de classes au cours des prochaines semaines, alors j'essaie de tout comprendre et bien organisé maintenant.GNUStep make avec un en-tête .pch précompilé (et préfixé) du projet Xcode?

Xcode crée un fichier ProjectName_Prefix.pch qui est un en-tête qui: a) est précompilé et b) est préfixé à chaque fichier de mon projet; au moins si je comprends bien.

Maintenant, comment puis-je dire à GNUStep-make quoi faire avec ce fichier lors de sa construction? Je l'ai ajouté à la variable XXX_PRECOMPILED_HEADERS.

Cioccolata_OBJC_PRECOMPILED_HEADERS = Cioccolata_Prefix.pch 

Avec cela en place la construction échoue avec l'erreur:

Making all for framework Cioccolata... 
make[1]: *** No rule to make target `/Users/chris/Projects/Mac/Cioccolata/build/GNUStep/obj/PrecompiledHeaders/ObjC/Cioccolata_Prefix.pch', needed by `internal-precompile-headers'. Stop. 
make: *** [Cioccolata.all.framework.variables] Error 2 

J'ai aussi ce qui suit dans mon makefile:

ADDITIONAL_OBJC_FLAGS += -include Cioccolata_Prefix.pch -Winvalid-pch 

Je ne sais pas ce que je J'ai mal fait ici. J'ai essentiellement essayé de suivre la documentation de GNUStep pour les en-têtes précompilés.

Aucun des fichiers source de mon projet n'inclut expressément le framework Foundation car cet en-tête le fait.

+0

Pouvez-vous compiler quelque chose * sans * le fichier pch? Juste une classe de test simple ..? En général, les personnes sur la liste GNUstep sont très utiles, et peu de gens sur SO semblent en savoir beaucoup sur GNUstep, donc je vous conseille de demander là. (Pour ma part, je ne peux pas répondre à votre question.) – Felixyz

+0

À condition de modifier chacun de mes fichiers .m pour ajouter le contenu du fichier .pch, alors oui, il se construit correctement. Cependant, j'aimerais comprendre comment utiliser l'en-tête précompilé avec GNUStep car c'est une fonctionnalité qui est apparemment supportée. – d11wtq

+0

En regardant la transcription de Xcode, il passe '-objectif-c-header' à gcc lorsqu'il précompile l'en-tête. Je ne suis pas sûr de savoir comment faire cela juste pour la phase de construction des en-têtes précompilés avec GNUStep-make. – d11wtq

Répondre

1

Merci d'avoir attiré notre attention sur ce problème et sur votre patch! :-)

Ceci est maintenant corrigé sur le tronc gnustep-make, et sera donc corrigé dans gnustep-make 2.4.0 une fois libéré.

Nicola Pero (gnustep-make)

+0

Pas de problème du tout, merci pour l'action rapide :) – d11wtq