首頁 >後端開發 >C++ >如何從 NDK Gradle DSL 中的 LOCAL_SRC_FILES 中排除檔案?

如何從 NDK Gradle DSL 中的 LOCAL_SRC_FILES 中排除檔案?

DDD
DDD原創
2024-11-27 06:57:10640瀏覽

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

使用排除模式繞過NDK DSL 中的LOCAL_SRC_FILES

問題:

可以在NDKLO_FID. Gradle?

原始答案(已棄用):

目前,Gradle 外掛程式不支援此功能。考慮使用傳統的 Android.mk 檔案。

更新的答案:

隨著 Gradle 外掛程式 0.4.0 的發布,現在可以使用排除模式來實現這一點。

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

靜態替代解決方案庫:

要在不使用 LOCAL_SRC_FILES 的情況下從 NDK 建置中排除文件,可以採取不同的方法。

  1. 建立包含排除檔案的靜態函式庫。
  2. 修改build.gradle以依賴靜態庫:
model {
    android.ndk {
        moduleName = "hello-jni"
        abiFilters += "$appAbi".toString()
        ldFlags += "$staticLib".toString()
        ldLibs += "log"
        cppFlags += "-std=c++11"
    }
}
  1. 在Android.mk 中定義靜態庫:
LOCAL_MODULE    := staticLib
LOCAL_SRC_FILES := HelloJni.cpp

LOCAL_CPPFLAGS += -std=c++11

include $(BUILD_STATIC_LIBRARY)

此方法有效地從常規NDK 建置中排除指定文件,並確保必要的符號可用於偵錯。

注意:請記住在修改排除設定後觸發「建置/清理」。

以上是如何從 NDK Gradle DSL 中的 LOCAL_SRC_FILES 中排除檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn