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
Freigeben: 2024-11-27 06:57:10
Original
678 Leute haben es durchsucht

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"
        }
    }
}
Nach dem Login kopieren

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"
    }
}
Nach dem Login kopieren
  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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage