Android.mk - build werden alle Quell-Datei in ein Verzeichnis
Bin ich mit dem Android NDK zu bauen meine cocos2dx Projekt, in dem Android.mk, es ist eine definition für LOCAL_SRC_FILES, wo jeder der cpp-Datei aufgelistet sind. Immer wenn ich eine neue source-Datei, ich müsste hinzufügen, dass es auch dort... es sieht so aus:
LOCAL_SRC_FILES := hellocpp/main.cpp \
hellocpp/myclass.cpp \
hellocpp/mynextclass.cpp \
../../Classes/Screens/LaunchScreen.cpp \
die header-Datei, jedoch können Sie die gesamte Verzeichnis zu zählen, es sieht wie folgt aus:
LOCAL_C_INCLUDES := $(LOCAL_PATH)/hellocpp
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../Classes/Screens
Ich habe versucht, verschiedene Möglichkeiten, um auch das gesamte Verzeichnis, anstatt eine einzige Datei für die LOCAL_SRC_FILES
so dass ich brauche nicht zu ändern, die Android -.mk-build-script, wenn ich eine neue Datei hinzuzufügen, jedoch bisher alle meine versuche fehlgeschlagen.
Ich habe dies ausprobiert:
#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/%=%)
sowie diese:
#LOCAL_SRC_FILES += hellocpp/*.cpp
#LOCAL_SRC_FILES += ../../Classes/*.cpp
beide nicht arbeiten...
Habe ich ein weiteres Projekt, das gut funktioniert mit der ersten option, obwohl, ich verstehe wirklich nicht, warum es nicht funktioniert in der cocos2dx Projekt... weiß jemand warum oder weiß die Lösung? Oder vielleicht sollte ich einfach lassen, wie es ist und machen Sie sich die Mühe, da jeder tut, dass., aber es ist wirklich lästig, hoffe, jemand kann helfen, so dass alle von uns können produktiver sein..
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Platzhalter funktioniert für cocos2dx Projekte. Ich benutze es auf meine eigene, nur dass die syntax falsch ist
Versuchen:
Classes
- Verzeichnis, das.cpp
Dateien in diesen directorise berücksichtigt werden inCLASSES_FILES
? Ich denke, es ist nicht. Ist es ein Weg, um es rekursiv?Eigentlich wildcards arbeiten, und Sie waren auf der richtigen Spur...
Dies ist ein Beispiel dafür, was funktioniert gut für mich:
Beachten Sie die Einbeziehung der $(LOCAL_PATH) variable, und dann
Dass sollte Ihnen ermöglichen, auf drop in jeder Quelldatei und kompilieren, ohne wieder zu Android.mk-Datei.
denke ich, dass Sie nicht brauchen, um hinzuzufügen, komplette header für die neuen Hinzugefügt .cpp-Dateien .. Sie sollten nur Hinzugefügt, es auf diese Weise
zum Beispiel . wenn Sie möchten, fügen Sie diese LaunchScreen.cpp dann sollten Sie es auf diese einfache Art und Weise
Dies ist ein makefile. Makefiles nicht so arbeiten. Sie können nicht festlegen, ein ganzes Verzeichnis für Dateien zu kompilieren - es ist nur nicht so eingerichtet ist, dass Art und Weise. Es ist so gewesen, seit 40 Jahren oder so. Einer der vielen Gründe, warum Menschen hasse makefiles. Das problem ist, dass alle die Ersetzungen wurden genauso schlimm.
Bauen alle Ihre .cpp-Dateien unter
../../Classes/
, können Sie das externefind
Befehl, wenn Sie bauen Ihr Projekt auf einem UNIX-artigen OS:Als vorgeschlagen, in der link: Rekursive Platzhalter in GNU make?, ein anderer Weg ist die folgende rekursive Platzhalter. Es ist geschrieben mit reinen Makefiles Regeln, so ist es tragbar und besser.
Nach Stunden Kampf mit diesem habe ich eine Lösung gefunden, die funktioniert endlich mit meiner cocos2dx setup (cocos2dx 3.10)
Beantwortung hier für den sake von jemandem zu helfen, mit den gleichen Schmerzen, da die -tatsächlich - funktioniert, diese Frage noch relevant zu diesem Tag
Vor allem, das funktioniert auch für Windows, das war das Hauptproblem, das ich erlebt, die mit anderen Lösungen
Quelle: http://qiita.com/YosukeMitsugi/items/137f1b57f03945ad2d50
dies ist was für mich gearbeitet in cocos2dx 3.10 unter win 10: