Skrip ndk-build membuat project yang menggunakan sistem build berbasis
Make NDK. Tersedia dokumentasi yang lebih spesifik untuk konfigurasi Android.mk dan Application.mk yang digunakan oleh ndk-build.
Internal
Menjalankan skrip ndk-build setara dengan menjalankan perintah berikut:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
$GNUMAKE mengarah ke GNU Make 3.81 atau yang lebih baru, dan <ndk> mengarah ke direktori penginstalan NDK Anda. Anda dapat menggunakan
informasi ini untuk memanggil ndk-build dari skrip shell lain, atau bahkan membuat file
sendiri.
Memanggil dari command line
Skrip ndk-build berada di direktori penginstalan NDK level teratas. Untuk menjalankannya dari command line, panggil skrip ini selagi berada di atau dalam direktori project aplikasi Anda.
Contoh:
$ cd <project> $ <ndk>/ndk-build
Dalam contoh ini, <project> mengarah ke direktori utama project Anda, dan <ndk> adalah direktori tempat Anda menginstal NDK.
Opsi
Semua parameter pada ndk-build diteruskan langsung ke perintah GNU make sumber yang menjalankan skrip build NDK. Gabungkan ndk-build dan opsi dalam format ndk-build <option>. Contoh:
$ ndk-build clean
Opsi berikut tersedia:
-
clean -
Menghapus biner yang dibuat sebelumnya.
Catatan: Di Mac OS X, menjalankan
ndk-build cleandengan banyak eksekusi paralel dapat menyebabkan error build yang mencakup pesan berikut:rm: fts_read: No such file or directory
Untuk menghindari masalah ini, sebaiknya jangan gunakan pengubah
-jNatau memilih nilai yang lebih kecil untukN, misalnya 2. -
V=1 - Meluncurkan build dan menampilkan perintah build.
-
-B - Memaksa pembuatan ulang penuh.
-
-B V=1 - Memaksa pembuatan ulang penuh, dan menampilkan perintah build.
-
NDK_LOG=1 - Menampilkan pesan log NDK internal (yang digunakan untuk men-debug NDK itu sendiri).
-
NDK_DEBUG=1 - Memaksa build yang dapat di-debug (lihat tabel 1).
-
NDK_DEBUG=0 - Memaksa build rilis (lihat tabel 1).
-
NDK_HOST_32BIT=1 - Selalu menggunakan toolchain dalam mode 32-bit.
-
NDK_APPLICATION_MK=<file> -
Membuat build menggunakan file
Application.mktertentu yang ditunjuk oleh variabelNDK_APPLICATION_MK. -
-C <project> - Membuat kode native untuk jalur project yang terletak di
<project>. Berguna jika Anda tidak ingin mengubah direktori (cd) ke <project> di terminal.
Build yang dapat di-debug vs build rilis
Gunakan opsi NDK_DEBUG dan, dalam kasus tertentu,
AndroidManifest.xml untuk menentukan build debug atau build rilis,
perilaku terkait pengoptimalan, dan penyertaan simbol. Tabel 1 menunjukkan hasil dari setiap kombinasi setelan yang memungkinkan.
Tabel 1. Hasil kombinasi NDK_DEBUG (command line) dan android:debuggable (manifes).
| Setelan Manifes | NDK_DEBUG=0 | NDK_DEBUG=1 | NDK_DEBUG tidak ditetapkan |
|---|---|---|---|
| android:debuggable="true" | Debug; Simbol; Dioptimalkan*1 | Debug; Simbol; Tidak dioptimalkan*2 | (sama dengan NDK_DEBUG=1) |
| android:debuggable="false" | Rilis; Simbol; Dioptimalkan | Rilis; Simbol; Tidak dioptimalkan | Rilis; Tanpa simbol; Dioptimalkan*3 |
*2: Default untuk menjalankan
ndk-gdb.*3: Mode default.
Catatan: `NDK_DEBUG=0` setara dengan `APP_OPTIM=release`, dan mengompilasi dengan `-O2`. `NDK_DEBUG=1` setara dengan `APP_OPTIM=debug` dalam `Application.mk`, dan mengompilasi dengan `-O0`. Untuk informasi tentang `APP_OPTIM`, lihat Application.mk.
Sintaksis pada command line, misalnya:
$ ndk-build NDK_DEBUG=1
Persyaratan
Anda memerlukan GNU Make 4 untuk menggunakan ndk-build atau NDK secara umum. NDK menyertakan salinan
GNU Make-nya sendiri dan akan menggunakannya kecuali jika Anda telah menetapkan
variabel lingkungan $GNUMAKE untuk mengarah ke make yang tidak sesuai.
Database kompilasi JSON
Di NDK r18 dan yang lebih baru, ndk-build dapat membuat database kompilasi JSON.
Anda dapat menggunakan ndk-build compile_commands.json untuk membuat database
tanpa harus menulis kode, atau ndk-build GEN_COMPILE_COMMANDS_DB=true jika
ingin menyusun dan membuat database sebagai efek samping.