Ich habe mehrere statische Bibliotheken, die mit jni erstellt werden. Ich habe ein Schema, das andere mk-Dateien usw. enthält, damit ich die Compilierungseinstellungen teilen kann, Dateien von anderen abhängigen Projekten usw. einschließe.ndk_build.cmd in cygwin erkennt keine enthaltenen mk-Dateien
Ich habe es erfolgreich auf dem Mac eingerichtet und habe es aufgebaut. Allerdings, wenn ich das gleiche in den Fenstern unter Cygwin zu tun, habe ich versucht, in Fragen renne ...
Hier meine jni/Android.mk Datei ist ..
LOCAL_PATH := $(call my-dir)
INJ_PROJECT_PATH := $(PWD)
include $(INJ_PROJECT_PATH)/jni/Project.mk
Das Problem ich sehe ist, dass sich ndk-build über die Datei Project.mk beschwert. Hier ist, was ich sehe ..
[email protected] /cygdrive/c/projects/injitiProjects/injitiEngine/Engine/Core
$ ndk-build.cmd NDK_APP_OUT=../../build/Android/Engine/release
jni/Android.mk:5: /cygdrive/c/projects/injitiProjects/injitiEngine/Engine/Core/jni/Project.mk: No such file or directory
jni/Android.mk:5: /cygdrive/c/projects/injitiProjects/injitiEngine/Engine/Core/jni/Project.mk: No such file or directory
jni/Android.mk:5: /cygdrive/c/projects/injitiProjects/injitiEngine/Engine/Core/jni/Project.mk: No such file or directory
jni/Android.mk:5: /cygdrive/c/projects/injitiProjects/injitiEngine/Engine/Core/jni/Project.mk: No such file or directory
C:/projects/Android/sdk/ndk-bundle/build//../build/core/build-all.mk:89: Android NDK: WARNING: There are no modules to build in this project!
make: *** No rule to make target `/cygdrive/c/projects/injitiProjects/injitiEngine/Engine/Core/jni/Project.mk'. Stop.
ich bestätigt haben, dass /cygdrive/c/projects/injitiProjects/injitiEngine/Engine/Core/jni/Project.mk nicht vorhanden ist, und ich bin der Eigentümer und es hat Berechtigungen für Benutzer/Gruppe/Sonstiges gelesen.
Auch dieses exakt gleiche Setup funktioniert absolut gut auf dem Mac. Ich suche nur nach einer tragbaren Entwicklungsumgebung.
Was fehlt mir hier ..?
ndk-build.cmd sollte jedoch in Cygwin funktionieren. Ich plante eigentlich, die Shell-Skript-Version zu entfernen, weil die gesamte cygwin-Unterstützung in der Shell-Version wirklich schlecht ist, aber die Batch-Datei mit Cygwin funktionierte gut, als ich es ausprobierte. Ich denke, das Problem ist, dass Sie '$ (PWD)' anstelle von '$ (LOCAL_PATH)' verwendet haben. –
Ich glaube, der Grund, warum ich $ (PWD) tat, war, den vollständigen Pfad im Gegensatz zu einem relativen Pfad zu erhalten. Ich könnte das System übertrieben haben, aber es erlaubt allen meinen Bibliotheken, gemeinsame Einstellungen zu teilen und bietet die Möglichkeit, über Dateien wie Source.mk, AdditionalIncludes.mk, und Target.mk, usw. anzupassen. Ich reparierte das $ (PWD) früher mit $ (shell pwd) und mit einem pwd-batch-script früher, aber lief auf andere probleme kompilieren es in Windows und entschied sich stattdessen cygwin auszuprobieren. Egal, es funktioniert jetzt. Bitte entfernen Sie nicht das sh-Skript, das jetzt dort ist. Ich benutze es erfolgreich :) – Shammi
Im Allgemeinen, wenn es Optionen gibt, die Sie auf alle Ihren Code anwenden möchten, sollten sie in Application.mk gehen. d.h. 'APP_CFLAGS: = -DMY_DEFINE = foo '. Ich muss versuchen, einen Testfall für Ihre Situation zu entwickeln und zu sehen, ob ich es mit Cygwin verhalten kann, wenn Sie ndk-build.cmd verwenden. –