Lo script ndk-build
crea progetti che utilizzano la build basata su marca dell'NDK
di un sistema operativo completo. È disponibile una documentazione più specifica per
Android.mk e
Configurazione Application.mk utilizzata
di ndk-build
.
Interni
L'esecuzione dello script ndk-build
equivale a eseguire il seguente comando:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
$GNUMAKE
punta a GNU Make 3.81 o versioni successive e
<ndk>
punta alla directory di installazione di NDK. Puoi utilizzare
queste informazioni per richiamare ndk-build da altri script shell o persino dal tuo
e creare file.
Richiama dalla riga di comando
Lo script ndk-build
si trova nella directory di installazione di NDK di primo livello. Per eseguirlo
dalla riga di comando, richiamarlo mentre si trova nella directory del progetto dell'applicazione o sotto.
Ad esempio:
$ cd <project> $ <ndk>/ndk-build
In questo esempio, <project>
punta al tuo
alla directory radice del progetto, mentre <ndk>
è la directory
hai installato l'NDK.
Opzioni
Tutti i parametri per ndk-build vengono passati direttamente alla GNU sottostante make
che esegue gli script di build NDK. Combina ndk-build
e
opzioni nel formato ndk-build <option>
. Ad esempio:
$ ndk-build clean
Sono disponibili le seguenti opzioni:
-
clean
-
Rimuovi eventuali file binari generati in precedenza.
Nota: su Mac OS X con
ndk-build clean
con un un numero elevato di esecuzioni parallele può causare un errore di generazione che include il seguente messaggio:rm: fts_read: No such file or directory
Per evitare questo problema, ti consigliamo di non utilizzare
-jN
o selezionando un valore più basso perN
, ad esempio 2. -
V=1
- Avvia build e visualizza i comandi build.
-
-B
- Forza una ricompilazione completa.
-
-B V=1
- Forza una ricompilazione completa e visualizza i comandi di build.
-
NDK_LOG=1
- Visualizza i messaggi di log NDK interni (utilizzati per il debug dell'NDK stesso).
-
NDK_DEBUG=1
- Forza una build di cui è possibile eseguire il debug (vedi tabella 1).
-
NDK_DEBUG=0
- Forzare una build di release (vedi tabella 1).
-
NDK_HOST_32BIT=1
- Utilizza sempre la toolchain in modalità a 32 bit.
-
NDK_APPLICATION_MK=<file>
-
Build, utilizzando un file
Application.mk
specifico a cui punta ilNDK_APPLICATION_MK
. -
-C <project>
-
Crea il codice nativo per il percorso del progetto in
<project>
. Utile se non vuoicd
nel tuo terminale.
Build di cui è possibile eseguire il debug e di release
Utilizza l'opzione NDK_DEBUG
e, in alcuni casi,
AndroidManifest.xml
per specificare la build di debug o release,
comportamento correlato all'ottimizzazione e inclusione di simboli. La tabella 1 mostra
i risultati di ogni possibile combinazione di impostazioni.
Impostazione manifest | NDK_DEBUG=0 | NDK_DEBUG=1 | NDK_DEBUG non specificato |
---|---|---|---|
android:debuggable="true" | Debug; Simboli Ottimizzata*1 | Debug; Simboli Non ottimizzato*2 | (uguale a NDK_DEBUG=1) |
android:debuggable="false" | Rilascia; Simboli Ottimizzato | Rilascia; Simboli Non ottimizzato | Rilascia; Nessun simbolo; Ottimizzata*3 |
*2: impostazione predefinita per l'esecuzione di
ndk-gdb
.*3: Modalità predefinita.
Nota: "NDK_DEBUG=0" è l'equivalente di "APP_OPTIM=release", e si compila con "-O2". "NDK_DEBUG=1" è l'equivalente di "APP_OPTIM=debug" in "Application.mk" e viene compilato con "-O0". Per ulteriori informazioni su "APP_OPTIM", vedi Application.mk.
Ad esempio, la sintassi della riga di comando è:
$ ndk-build NDK_DEBUG=1
Requisiti
Ti serve GNU Make 4 per usare ndk-build o NDK in generale. L'NDK include i suoi
proprio copia di GNU Make e la userai a meno che tu non abbia impostato $GNUMAKE
di ambiente per puntare a una marca non adatta.
Database di compilazione JSON
In NDK r18 e versioni successive, ndk-build può generare Database di compilazione JSON.
Puoi utilizzare ndk-build compile_commands.json
per generare il database
senza creare il codice o ndk-build GEN_COMPILE_COMMANDS_DB=true
se
vuoi creare e generare il database come effetto collaterale.