Skrypt ndk-build
tworzy projekty wykorzystujące kompilację opartą na modelu NDK
systemu. Istnieje bardziej szczegółowa dokumentacja
Android.mk i
Użyta konfiguracja Application.mk
autor: ndk-build
.
Wewnętrzne
Uruchomienie skryptu ndk-build
jest równoważne uruchomieniu następującego polecenia:
$GNUMAKE -f <ndk>/build/core/build-local.mk <parameters>
$GNUMAKE
wskazuje GNU Make 3.81 lub nowszą wersję oraz
<ndk>
wskazuje katalog instalacyjny NDK. Za pomocą
te informacje do wywołania polecenia ndk-build za pomocą innych skryptów powłoki, a nawet własnych
tworzyć pliki.
Wywołaj z wiersza poleceń
Skrypt ndk-build
znajduje się w katalogu instalacyjnym NDK najwyższego poziomu. Aby go uruchomić:
z wiersza poleceń, wywołaj go w katalogu projektu aplikacji lub pod nim.
Na przykład:
$ cd <project> $ <ndk>/ndk-build
W tym przykładzie <project>
wskazuje
katalogu głównego projektu, a <ndk>
to katalog, w którym
Pakiet NDK został zainstalowany.
Opcje
Wszystkie parametry do polecenia ndk-build są przekazywane bezpośrednio do bazy GNU make
uruchamiające skrypty kompilacji NDK. Połącz: ndk-build
i
w formacie ndk-build <option>
. Na przykład:
$ ndk-build clean
Są tu dostępne następujące ustawienia:
-
clean
-
Usuń wcześniej wygenerowane pliki binarne.
Uwaga: w systemie Mac OS X:
ndk-build clean
z duża liczba wykonań równoległych może spowodować błąd kompilacji, który zawiera następujący komunikat:rm: fts_read: No such file or directory
Aby uniknąć tego problemu, nie używaj:
-jN
lub wybór mniejszej wartości parametruN
, np. 2. -
V=1
- uruchamiać i wyświetlać polecenia kompilacji;
-
-B
- Wymuś pełną odbudowę.
-
-B V=1
- Wymuś pełną przebudowę i wyświetl polecenia kompilacji.
-
NDK_LOG=1
- Wyświetl komunikaty wewnętrznego dziennika NDK (używane do debugowania samego NDK).
-
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 łańcucha narzędzi w trybie 32-bitowym.
-
NDK_APPLICATION_MK=<file>
-
Kompiluj przy użyciu konkretnego pliku
Application.mk
wskazywanego przez kluczNDK_APPLICATION_MK
. -
-C <project>
-
Utwórz kod natywny dla ścieżki projektu znajdującej się pod adresem
<project>
Przydatny, jeśli nie chceszcd
do terminala.
Kompilacje do debugowania a kompilacje do wersji
Użyj opcji NDK_DEBUG
, a w niektórych przypadkach:
AndroidManifest.xml
, aby określić kompilację do debugowania lub wersji;
zachowań związanych z optymalizacją
i uwzględnienia symboli. Tabela 1 przedstawia
dla każdej możliwej kombinacji ustawień.
Ustawienie pliku manifestu | NDK_DEBUG=0 | NDK_DEBUG=1 | Nie określono NDK_DEBUG |
---|---|---|---|
android:debuggable="true" | debugowanie; symbole; Zoptymalizowana*1 | debugowanie; symbole; Bez optymalizacji*2 | (tak samo jak NDK_DEBUG=1) |
android:debuggable="false" | Wydanie; symbole; Zoptymalizowany | Wydanie; symbole; Brak optymalizacji | Wydanie; Bez symboli; Zoptymalizowana*3 |
*2: wartość domyślna w przypadku uruchamiania
ndk-gdb
.*3: tryb domyślny.
Uwaga: „NDK_DEBUG=0” jest odpowiednikiem funkcji `APP_OPTIM=release` i kompiluje się z wartością -O2. „NDK_DEBUG=1” jest odpowiednikiem funkcji `APP_OPTIM=debug` w `Application.mk` i kompiluje się z `-O0`. Więcej informacji o `APP_OPTIM`: Plik Application.mk.
Składnia wiersza poleceń:
$ ndk-build NDK_DEBUG=1
Wymagania
Do korzystania z programu ndk-build lub programu NDK potrzebujesz programu GNU Make 4. Do NDK należą:
mieć własną kopię programu GNU Make. Będzie jej używać, chyba że ustawisz $GNUMAKE
zmienną środowiskową wskazującą na nieodpowiednią markę.
Bazy danych kompilacji JSON
W NDK r18 i nowszych wersjach ndk-build może wygenerować Baza danych JSON.
Do wygenerowania bazy danych możesz użyć polecenia ndk-build compile_commands.json
bez tworzenia kodu lub ndk-build GEN_COMPILE_COMMANDS_DB=true
, jeśli
dla których chcesz stworzyć i wygenerować bazę danych jako efekt uboczny.