Maison > développement back-end > C++ > Comment puis-je exclure des fichiers de LOCAL_SRC_FILES dans le NDK Gradle DSL ?

Comment puis-je exclure des fichiers de LOCAL_SRC_FILES dans le NDK Gradle DSL ?

DDD
Libérer: 2024-11-27 06:57:10
original
716 Les gens l'ont consulté

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

Contourner LOCAL_SRC_FILES dans NDK DSL avec des modèles d'exclusion

Question :

LOCAL_SRC_FILES peut-il être défini dans un bloc NDK DSL dans Gradle ?

Réponse originale (obsolète) :

Actuellement, cette fonctionnalité n'est pas prise en charge par le plugin Gradle. Pensez à utiliser le fichier Android.mk traditionnel.

Réponse mise à jour :

Avec la sortie du plugin Gradle 0.4.0, cela est désormais possible en utilisant des modèles d'exclusion.

android.sources {
    main {
        jni.source {
            srcDirs = ["~/srcs/jni"]
            exclude "**/win.cpp"
        }
    }
}
Copier après la connexion

Solution alternative avec bibliothèque statique :

Pour exclure les fichiers des builds NDK sans utiliser LOCAL_SRC_FILES, une approche différente peut être adoptée.

  1. Créez une bibliothèque statique contenant les fichiers exclus.
  2. Modifiez build.gradle pour qu'il dépende de la bibliothèque statique :
model {
    android.ndk {
        moduleName = "hello-jni"
        abiFilters += "$appAbi".toString()
        ldFlags += "$staticLib".toString()
        ldLibs += "log"
        cppFlags += "-std=c++11"
    }
}
Copier après la connexion
  1. Définir la bibliothèque statique dans Android.mk :
LOCAL_MODULE    := staticLib
LOCAL_SRC_FILES := HelloJni.cpp

LOCAL_CPPFLAGS += -std=c++11

include $(BUILD_STATIC_LIBRARY)
Copier après la connexion

Cette approche exclut efficacement les fichiers spécifiés des versions NDK standard et garantit que les symboles nécessaires sont disponibles pour le débogage.

Remarque : Pensez à déclencher un "Build/Clean" après avoir modifié les paramètres d'exclusion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal