Android.mk - Erstelle alle Quelldateien in einem Verzeichnis

8

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!

    
Zennichimaro 21.08.2013, 04:40
quelle

7 Antworten

17

Der Platzhalter funktioniert auch für cocos2dx-Projekte. Ich benutze es allein, nur dass Ihre Syntax falsch ist

Versuchen:

%Vor%     
Hakim Hauston 10.12.2013, 04:16
quelle
6

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.

    
Erik 21.08.2013 10:19
quelle
1

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%     
shaqir saiyed 23.08.2013 11:51
quelle
0

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.

    
Gabe Sechan 21.08.2013 04:42
quelle
0

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:

%Vor%

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%     
GaloisPlusPlus 27.08.2014 10:06
quelle
0

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: Ссылка

    
Guykun 13.02.2016 08:22
quelle
0

das hat bei cocos2dx 3.10 unter win 10 für mich funktioniert:

%Vor%     
Joseph 01.03.2016 11:26
quelle