ndk-build

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 Anda 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 clean dengan banyak eksekusi paralel dapat menghasilkan error build yang mencakup pesan berikut:

rm: fts_read: No such file or directory

Untuk menghindari masalah ini, sebaiknya jangan gunakan pengubah -jN atau memilih nilai yang lebih kecil untuk N, 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 (lihat Toolchain 64 bit dan 32 bit).
NDK_APPLICATION_MK=<file>
Membuat build menggunakan file Application.mk tertentu yang ditunjuk oleh variabel NDK_APPLICATION_MK.
-C <project>
Membuat kode native untuk jalur project yang terletak di <project>. Berguna jika Anda tidak ingin melakukan cd di terminal Anda.

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 ManifesNDK_DEBUG=0NDK_DEBUG=1NDK_DEBUG tidak ditetapkan
android:debuggable="true"Debug; Simbol; Dioptimalkan*1Debug; Simbol; Tidak dioptimalkan*2(sama dengan NDK_DEBUG=1)
android:debuggable="false"Rilis; Simbol; DioptimalkanRilis; Simbol; Tidak dioptimalkanRilis; Tanpa simbol; Dioptimalkan*3

*1: Berguna untuk membuat profil.
*2: Default untuk menjalankan ndk-gdb.
*3: Mode default.

Catatan: NDK_DEBUG=0 setara dengan APP_OPTIM=release, dan melakukan kompilasi dengan -O2. NDK_DEBUG=1 setara dengan APP_OPTIM=debug dalam Application.mk, dan melakukan kompilasi dengan -O0. Untuk mengetahui informasi selengkapnya tentang APP_OPTIM, lihat Application.mk.

Sintaks 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 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.