Heim >Backend-Entwicklung >C++ >Wie kann ich Dateien von LOCAL_SRC_FILES im NDK Gradle DSL ausschließen?

Wie kann ich Dateien von LOCAL_SRC_FILES im NDK Gradle DSL ausschließen?

DDD
DDDOriginal
2024-11-27 06:57:10708Durchsuche

How Can I Exclude Files from LOCAL_SRC_FILES in the NDK Gradle DSL?

Umgehen von LOCAL_SRC_FILES in NDK DSL mit Ausschlussmustern

Frage:

Können LOCAL_SRC_FILES innerhalb eines NDK-DSL-Blocks definiert werden? Gradle?

Ursprüngliche Antwort (veraltet):

Derzeit wird diese Funktion vom Gradle-Plugin nicht unterstützt. Erwägen Sie die Verwendung der herkömmlichen Android.mk-Datei.

Aktualisierte Antwort:

Mit der Veröffentlichung des Gradle-Plugins 0.4.0 ist dies jetzt mithilfe von Ausschlussmustern möglich.

android.sources {
    main {
        jni.source {
            srcDirs = ["~/srcs/jni"]
            exclude "**/win.cpp"
        }
    }
}

Alternative Lösung mit statischer Bibliothek:

Um Dateien auszuschließen Bei NDK-Builds ohne Verwendung von LOCAL_SRC_FILES kann ein anderer Ansatz gewählt werden.

  1. Erstellen Sie eine statische Bibliothek mit den ausgeschlossenen Dateien.
  2. Ändern Sie build.gradle so, dass es von der statischen Bibliothek abhängt:
model {
    android.ndk {
        moduleName = "hello-jni"
        abiFilters += "$appAbi".toString()
        ldFlags += "$staticLib".toString()
        ldLibs += "log"
        cppFlags += "-std=c++11"
    }
}
  1. Definieren Sie die statische Bibliothek in Android.mk:
LOCAL_MODULE    := staticLib
LOCAL_SRC_FILES := HelloJni.cpp

LOCAL_CPPFLAGS += -std=c++11

include $(BUILD_STATIC_LIBRARY)

Dieser Ansatz schließt die angegebenen Dateien effektiv von regulären NDK-Builds aus und stellt sicher, dass die erforderlichen Symbole zum Debuggen verfügbar sind.

Hinweis: Denken Sie daran, nach der Änderung der Ausschlusseinstellungen einen „Build/Clean“ auszulösen.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateien von LOCAL_SRC_FILES im NDK Gradle DSL ausschließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn