Skrypt ndk-build
tworzy projekty, które korzystają z systemu kompilacji NDK opartego na marce. Istnieje bardziej szczegółowa dokumentacja konfiguracji Android.mk i Application.mk, której używa ndk-build
.
Wewnętrzne
Uruchomienie skryptu ndk-build
jest równoważne z uruchomieniem tego polecenia:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
$GNUMAKE
wskazuje wersję GNU Make 3.81 lub nowszą, a <ndk>
– katalog instalacji NDK. Możesz użyć tych informacji do wywołania ndk-build z innych skryptów powłoki, a nawet do tworzenia własnych plików.
Wywołuj z wiersza poleceń
Skrypt ndk-build
znajduje się w katalogu instalacyjnym NDK najwyższego poziomu. Aby uruchomić go z poziomu wiersza poleceń, wywołaj go w katalogu projektu aplikacji lub w nim.
Na przykład:
$ cd <project> $ <ndk>/ndk-build
W tym przykładzie <project>
wskazuje katalog główny Twojego projektu, a <ndk>
to katalog, w którym zainstalowano NDK.
Opcje
Wszystkie parametry do ndk-build są przekazywane bezpośrednio do polecenia GNU make
, które uruchamia skrypty kompilacji NDK. Połącz ndk-build
i opcje w formularzu ndk-build <option>
. Na przykład:
$ ndk-build clean
Są tu dostępne następujące ustawienia:
-
clean
- Usuń wszystkie wcześniej wygenerowane pliki binarne.
Uwaga: w systemie Mac OS X uruchomienie narzędzia
ndk-build clean
przy dużej liczbie wykonań równoległych może spowodować błąd kompilacji, który zawiera ten komunikat:rm: fts_read: No such file or directory
Aby uniknąć tego problemu, nie używaj modyfikatora
-jN
ani nie wybieraj mniejszej wartości dlaN
, np. 2. -
V=1
- Uruchom kompilację i wyświetl polecenia kompilacji.
-
-B
- Wymuś pełną kompilację.
-
-B V=1
- Wymuszaj całkowitą przebudowę i wyświetlaj polecenia kompilacji.
-
NDK_LOG=1
- Wyświetl wewnętrzne komunikaty dziennika NDK (używane do debugowania samego pakietu).
-
NDK_DEBUG=1
- Wymuś kompilację możliwą do debugowania (patrz tabela 1).
-
NDK_DEBUG=0
- Wymuś kompilację wersji (patrz tabela 1).
-
NDK_HOST_32BIT=1
- Zawsze używaj pęku narzędzi w trybie 32-bitowym.
-
NDK_APPLICATION_MK=<file>
- Kompilacja z użyciem określonego pliku
Application.mk
wskazywanego przez zmiennąNDK_APPLICATION_MK
. -
-C <project>
- Utwórz kod natywny dla ścieżki projektu w lokalizacji
<project>
. Przydatna, jeśli nie chcesz jej używać w terminalu:cd
.
Kompilacje możliwe do debugowania a kompilacje do publikacji
Użyj opcji NDK_DEBUG
, a w niektórych przypadkach – AndroidManifest.xml
, aby określić debugowanie lub kompilację wersji, działanie związane z optymalizacją i uwzględnianie symboli. Tabela 1 zawiera wyniki każdej możliwej kombinacji ustawień.
Ustawienie pliku manifestu | NDK_DEBUG=0 | NDK_DEBUG=1 | Nie określono parametru NDK_DEBUG |
---|---|---|---|
android:debuggable="true", | Debugowanie; Symbole; Zoptymalizowane*1 | Debugowanie; Symbole; Brak optymalizacji*2 | (tak samo jak w przypadku NDK_DEBUG=1) |
android:debuggable="false" | Zwolnienie z dostępu; symbole; zoptymalizowane | Wersja; symbole; niezoptymalizowana | Zwolnij; Bez symboli; Zoptymalizowany*3 |
*2 – wartość domyślna w przypadku uruchamiania
ndk-gdb
.*3: tryb domyślny.
Uwaga: „NDK_DEBUG=0” jest odpowiednikiem „APP_OPTIM=release” i kompiluje się z „-O2”. „NDK_DEBUG=1” to odpowiednik „APP_OPTIM=debug” w `Application.mk` i kompilowa się z `-O0`. Więcej informacji o `-APP_IM`.
Składnia wiersza poleceń to na przykład:
$ ndk-build NDK_DEBUG=1
Wymagania
Aby korzystać z ndk-build lub pakietu NDK, potrzebujesz programu GNU Make 4. Pakiet NDK zawiera własną kopię programu GNU Make i będzie jej używał, chyba że ustawisz zmienną środowiskową $GNUMAKE
tak, aby wskazywała na niewłaściwą markę.
Bazy danych kompilacji JSON
W wersji NDK r18 i nowszych kompilacja ndk może wygenerować bazę danych kompilacji JSON.
Możesz użyć ndk-build compile_commands.json
, aby wygenerować bazę danych bez tworzenia kodu, lub ndk-build GEN_COMPILE_COMMANDS_DB=true
, jeśli chcesz skompilować i wygenerować bazę danych jako efekt uboczny.