Ich verwende Android NDK, um mein cocos2dx-Projekt zu erstellen, innerhalb der Android.mk gibt es eine Definition für LOCAL_SRC_FILES, in der jede cpp-Datei aufgelistet ist. Immer wenn ich eine neue Quelldatei hinzugefügt habe, müsste ich sie dort ebenfalls hinzufügen ... sieht so aus:
%Vor%Die Headerdatei kann jedoch das gesamte Verzeichnis angeben, das eingeschlossen werden soll. Es sieht so aus:
%Vor% Ich habe verschiedene Möglichkeiten ausprobiert, um das ganze Verzeichnis statt einer einzelnen Datei für das LOCAL_SRC_FILES
einzubinden, so dass ich das Buildskript von Android.mk nicht ändern muss, wenn ich eine neue Datei anschließe, bisher jedoch alle meine Versuche sind fehlgeschlagen.
Ich habe es versucht:
%Vor%sowie das:
%Vor%beide funktionieren nicht ...
Ich habe ein anderes Projekt, das gut mit der ersten Option funktioniert, aber ich verstehe wirklich nicht, warum es im cocos2dx-Projekt nicht funktioniert ... Weiß jemand warum oder kennt die Lösung? Oder vielleicht sollte ich es einfach so lassen wie es ist und sich die Mühe machen, da jeder das macht. Aber es ist wirklich mühsam, hoffe jemand kann helfen damit wir alle produktiver sein können.
Danke!
Der Platzhalter funktioniert auch für cocos2dx-Projekte. Ich benutze es allein, nur dass Ihre Syntax falsch ist
Versuchen:
%Vor%Tatsächlich funktionieren Wildcards und du warst auf dem richtigen Weg ...
Dies ist ein Beispiel dafür, was für mich gut funktioniert:
%Vor%Beachten Sie die Einbeziehung der $ (LOCAL_PATH) Variable und dann
%Vor%Damit können Sie jede Quelldatei einfügen und sie wird kompiliert, ohne zur Datei Android.mk zurückzukehren.
Ich denke, dass Sie keine komplette Kopfzeile für neu hinzugefügte .cpp-Dateien hinzufügen müssen. Sie sollten es einfach so hinzufügen
zum Beispiel. Wenn Sie diese LaunchScreen.cpp hinzufügen möchten, sollten Sie es auf diese einfache Weise einfügen
%Vor%Dies ist ein Makefile. Makefiles funktionieren nicht so. Sie können kein komplettes Verzeichnis für zu kompilierende Dateien angeben - es ist einfach nicht so eingerichtet. So war es etwa 40 Jahre lang. Einer von vielen Gründen, warum Leute Makefiles hassen. Das Problem ist, dass alle Ersetzungen genauso schlimm waren.
Um alle Ihre .cpp-Dateien unter ../../Classes/
zu erstellen, können Sie den externen Befehl find
verwenden, wenn Sie Ihr Projekt auf einem UNIX-ähnlichen Betriebssystem erstellen:
Wie in dem Link: Rekursive Wildcards in GNU make? vorgeschlagen, wird der folgende rekursive Platzhalter verwendet. Es ist mit reinen Makefile-Regeln geschrieben, daher ist es tragbar und besser.
%Vor%Nach stundenlangem Kampf habe ich eine Lösung gefunden, die endlich mit meinem cocos2dx-Setup funktioniert (cocos2dx 3.10)
%Vor%Hier zu antworten, um jemandem zu helfen, der seit dem - tatsächlich - mit den gleichen Schmerzen aushilft, ist diese Frage bis heute relevant Bemerkenswert ist, dass dies auch für Windows funktioniert, was das Hauptproblem bei anderen Lösungen war.
Quelle: Ссылка
Tags und Links android android-ndk cocos2d-x cocos2d-iphone