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 clean
dengan 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
-jN
atau 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.mk
tertentu 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.
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.