Android.mk - construire tous les fichiers source dans un répertoire
Je suis en utilisant Android NDK pour construire mon cocos2dx de projet, au sein de l'Android.mk, il y a une définition pour LOCAL_SRC_FILES où chaque fichier cpp sont répertoriés. Chaque fois que j'ai ajouté un nouveau fichier source, j'avais besoin de l'ajouter, il y a l'... il ressemble à ceci:
LOCAL_SRC_FILES := hellocpp/main.cpp \
hellocpp/myclass.cpp \
hellocpp/mynextclass.cpp \
../../Classes/Screens/LaunchScreen.cpp \
le fichier d'en-tête, cependant, pouvez spécifier le répertoire entier à comprendre, il ressemble à ceci:
LOCAL_C_INCLUDES := $(LOCAL_PATH)/hellocpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Classes/Screens
J'ai essayé divers moyens pour inclure l'ensemble du répertoire au lieu d'un seul fichier pour le LOCAL_SRC_FILES
de sorte que je n'ai pas besoin de modifier le Android.mk script de construction chaque fois que j'ajoute un nouveau fichier, cependant, jusqu'à présent, toutes mes tentatives ont échoué.
J'ai essayé ceci:
#SRC_PATH_HELLOCPP := $(wildcard hellocpp/*.cpp)
#SRC_PATH_CLASSES += $(wildcard ../../Classes/*.cpp)
#LOCAL_SRC_FILES := $(SRC_PATH_HELLOCPP:$(LOCAL_PATH/%=%)
#LOCAL_SRC_FILES += $(SRC_PATH_CLASSES:$(LOCAL_PATH/%=%)
ainsi que ceci:
#LOCAL_SRC_FILES += hellocpp/*.cpp
#LOCAL_SRC_FILES += ../../Classes/*.cpp
les deux ne sont pas de travail...
J'ai un autre projet qui fonctionne bien avec la première option, cependant, je ne comprends vraiment pas pourquoi il ne fonctionne pas dans le cocos2dx projet... quelqu'un sait pourquoi ou de savoir la solution? Ou peut être que je devrais le laisser comme tel, et prenez la peine, puisque tout le monde est en train de faire., mais c'est vraiment gênant, espère que quelqu'un peut aider, de sorte que nous pouvons tous être plus productif..
Merci!
OriginalL'auteur Zennichimaro | 2013-08-21
Vous devez vous connecter pour publier un commentaire.
Le générique fonctionne pour cocos2dx projets. Je l'utilise sur mon propre, juste que ta syntaxe est incorrecte
Essayer:
Classes
répertoire, le.cpp
fichiers à l'intérieur de ces directorise seront pris en compte dansCLASSES_FILES
? Je suppose qu'il ne l'est pas. Est-il un moyen de le rendre récursif?Non, il n'est pas récursive, vous devez ajouter une autre ligne de spécifier le sous-répertoire
Cela ne fonctionne pas pour moi. Même erreur...
OriginalL'auteur Hakim Hauston
En fait des caractères génériques n'travail et vous étiez sur la bonne voie...
Ceci est un exemple de ce qui fonctionne bien pour moi:
Avis l'inclusion de l' $(LOCAL_PATH) de la variable, puis
Qui devrait vous permettre de déposer dans un fichier source et compiler sans revenir à l'Android.mk fichier.
Édité ma réponse, comparez les deux premières lignes. Il manque le $(LOCAL_PATH) de la variable. PS: un "#" dans un makefile est pour les commentaires!
OriginalL'auteur Erik
je pense que vous n'avez pas besoin d'ajouter de l'ensemble de l'en-tête pour les nouveaux ajouté .fichiers cpp .. vous devriez juste ajouté ça de cette façon
par exemple . si vous souhaitez ajouter ce LaunchScreen.cpp ensuite, vous devez inclure cette manière simple
OriginalL'auteur shaqir saiyed
C'est un fichier makefile. Les Makefiles ne fonctionne pas comme ça. Vous ne pouvez pas spécifier un répertoire pour les fichiers à compiler - il n'est tout simplement pas en ce sens. Ça a été comme ça pendant 40 ans. L'une des nombreuses raisons pourquoi les gens détestent les makefiles. Le problème est que tous les remplacements ont été tout aussi mauvais.
OriginalL'auteur Gabe Sechan
Pour construire votre .fichiers cpp sous
../../Classes/
, vous pouvez utiliser l'externefind
commande si vous construisez votre projet sur un UNIX comme système d'exploitation:Comme suggéré dans le lien: Récursive des caractères génériques dans GNU make?, un autre moyen est d'utiliser le récursive générique. Il est écrit avec de la pure Makefile règles, ainsi qu'il est portable et mieux.
OriginalL'auteur GaloisPlusPlus
Après des heures de combats avec ce que j'ai trouvé une solution qui fonctionne enfin avec mon cocos2dx setup (cocos2dx 3.10)
Répondre ici, pour le plaisir d'aider quelqu'un avec la même douleur depuis l'-en fait, cette question est pertinente à ce jour
Notamment, cela fonctionne aussi pour Windows qui a été le principal problème que j'ai vécu avec d'autres solutions
Source: http://qiita.com/YosukeMitsugi/items/137f1b57f03945ad2d50
OriginalL'auteur Guykun
c'est ce qui a fonctionné pour moi dans cocos2dx 3.10 sous win 10:
OriginalL'auteur Joseph