"ndk-build" komut dosyası

ndk-build komut dosyası, NDK'nın Yapma tabanlı derlemesini kullanan projeler oluşturur bahsedeceğim. Bu programla ilgili daha spesifik belgeler var. Android.mk ve Kullanılan Application.mk yapılandırması ndk-build tarafından.

Dahililer

ndk-build komut dosyasını çalıştırmak, aşağıdaki komutu çalıştırmakla eşdeğerdir:

$GNUMAKE -f <ndk>/build/core/build-local.mk
<parameters>

$GNUMAKE, GNU 3.81 veya sonraki bir sürüme işaret eder ve <ndk>, NDK yükleme dizininizi işaret eder. Tekliflerinizi otomatikleştirmek ve optimize etmek için diğer kabuk komut dosyalarından veya kendi kabuk komut dosyalarınızdan ndk-build'i çağırmak için bu bilgileri dosyalar oluşturabilirsiniz.

Komut satırından çağırma

ndk-build komut dosyası, üst düzey NDK yükleme dizininde bulunur. Çalıştırmak için komut satırından, uygulama proje dizininizde veya uygulamanızın altındayken çağırın. Örnek:

$ cd <project>
$ <ndk>/ndk-build

Bu örnekte <project>, kök dizinini, <ndk> ise dizinin kök dizinini temsil eder. NDK'yı yüklediniz.

Seçenekler

ndk-build'teki tüm parametreler doğrudan temel alınan GNU'ya (make) iletilir komutudur. ndk-build ile birleştir seçenekleri de ndk-build <option> biçimindedir. Örnek:

$ ndk-build clean

Aşağıdaki seçenekleri kullanabilirsiniz:

clean
. Önceden oluşturulmuş ikili programları kaldırın.

Not: Mac OS X'te, ndk-build clean sürümünü paralel yürütme sayısının yüksek olması, aşağıdaki mesajı içerir:

rm: fts_read: No such file or directory

Bu sorunu önlemek için -jN özelliğini kullanmamayı düşünebilirsiniz değiştiricisi kullanabilir veya N için daha küçük bir değer (ör. 2) seçebilirsiniz.

V=1
. Derlemeyi başlatma ve derleme komutlarını görüntüleme
-B
. Tamamen yeniden oluşturmayı zorunlu kıl.
-B V=1
. Tamamen yeniden derlemeyi zorunlu kılın ve derleme komutlarını görüntüleyin.
NDK_LOG=1
. Dahili NDK günlük mesajlarını görüntüle (NDK'nın kendisinde hata ayıklamak için kullanılır).
NDK_DEBUG=1
. Hata ayıklaması yapılabilir bir derlemeyi zorunlu kılın (tablo 1'e bakın).
NDK_DEBUG=0
. Bir sürüm derlemesini zorunlu kılın (1. tablo'ya bakın).
NDK_HOST_32BIT=1
. Araç zincirini her zaman 32 bit modunda kullanın.
NDK_APPLICATION_MK=<file>
. Application.mk NDK_APPLICATION_MK değişkeni.
-C <project>
. Şu adreste bulunan proje yolu için yerel kodu derleyin: <project>. cd istemiyorsanız kullanışlıdır kullanabilirsiniz.

Hata ayıklanabilir derleme ile sürüm derlemelerinin karşılaştırması

NDK_DEBUG seçeneğini kullanın ve belirli durumlarda Hata ayıklamayı veya sürüm derlemesini belirtmek için AndroidManifest.xml optimizasyonla ilgili davranış ve simgelerin dahil edilmesiyle ilgilidir. Tablo 1, sonuçlarını gösterir.

Tablo 1. NDK_DEBUG (komut satırı) ve android:debuggable (manifest) kombinasyon.

Manifest AyarıNDK_HATA AYIKLAMA=0 NDK_HATA AYIKLAMA=1NDK_DEBUG belirtilmedi
android:debuggable="doğru" Hata ayıkla; Semboller Optimize edilmiş*1 Hata ayıkla; Semboller Optimize edilmemiş*2 (NDK_DEBUG=1 ile aynı)
android:debuggable="false"Sürüm; Semboller Optimize edilmiş Sürüm; Semboller Optimize edilmediSürüm; Simge yok; Optimize edilmiş*3
*1: Profil çıkarma için kullanışlıdır.
. *2: ndk-gdb çalıştırmak için varsayılandır.
. *3: Varsayılan mod.

Not: "NDK_DEBUG=0", "APP_OPTIM=release" ile başlar ve "-O2" ile derlenir. "NDK_DEBUG=1", "Application.mk"deki "APP_OPTIM=debug" dosyasıdır ve "-O0" ile derlenir. "APP_OPTIM" hakkında daha fazla bilgi için bkz. Application.mk.

Komut satırındaki söz dizimi, örneğin:

$ ndk-build NDK_DEBUG=1

Gereksinimler

Genel olarak ndk-build veya NDK'yı kullanmak için GNU Make 4'e ihtiyacınız var. NDK, GNU Make'nin sahibidir ve $GNUMAKE özelliğini ayarlamadığınız sürece bunu kullanır. ortam değişkeninin uygunsuz bir markaya işaret etmesinin önüne geçilir.

JSON derleme veritabanları

NDK r18 ve daha yeni sürümlerde ndk-build, JSON derleme veritabanı.

Veritabanı oluşturmak için ndk-build compile_commands.json kullanabilirsiniz kod oluşturmadan ndk-build GEN_COMPILE_COMMANDS_DB=true oluşturmak istiyorsunuz.