Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengecualikan Fail daripada LOCAL_SRC_FILES dalam DSL Gradle NDK?

Bagaimanakah Saya Boleh Mengecualikan Fail daripada LOCAL_SRC_FILES dalam DSL Gradle NDK?

DDD
Lepaskan: 2024-11-27 06:57:10
asal
708 orang telah melayarinya

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

Memintas LOCAL_SRC_FILES dalam NDK DSL Dengan Corak Pengecualian

Soalan:

Bolehkah LOCAL_SRC_FILES ditakrifkan dalam blok NDK Gradle?

Jawapan Asal (Ditamatkan):

Pada masa ini, ciri ini tidak disokong oleh pemalam Gradle. Pertimbangkan untuk menggunakan fail Android.mk tradisional.

Jawapan Kemas Kini:

Dengan keluaran pemalam Gradle 0.4.0, ini kini boleh dilakukan menggunakan corak pengecualian.

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

Penyelesaian Alternatif dengan Statik Pustaka:

Untuk mengecualikan fail daripada binaan NDK tanpa menggunakan LOCAL_SRC_FILES, pendekatan berbeza boleh diambil.

  1. Buat perpustakaan statik yang mengandungi fail yang dikecualikan.
  2. Ubah suai build.gradle untuk bergantung pada statik perpustakaan:
model {
    android.ndk {
        moduleName = "hello-jni"
        abiFilters += "$appAbi".toString()
        ldFlags += "$staticLib".toString()
        ldLibs += "log"
        cppFlags += "-std=c++11"
    }
}
Salin selepas log masuk
  1. Tentukan perpustakaan statik dalam Android.mk:
LOCAL_MODULE    := staticLib
LOCAL_SRC_FILES := HelloJni.cpp

LOCAL_CPPFLAGS += -std=c++11

include $(BUILD_STATIC_LIBRARY)
Salin selepas log masuk

Pendekatan ini secara berkesan mengecualikan fail yang ditentukan daripada binaan NDK biasa dan memastikan simbol yang diperlukan tersedia untuk penyahpepijatan.

Nota: Ingat untuk mencetuskan "Bina/Bersihkan" selepas mengubah suai tetapan pengecualian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengecualikan Fail daripada LOCAL_SRC_FILES dalam DSL Gradle NDK?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan