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 cleansü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 veyaNiç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.mkNDK_APPLICATION_MKdeğişkeni. -
-C <project> - .
Şu adreste bulunan proje yolu için yerel kodu derleyin:
<project>.cdistemiyorsanı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=1 | NDK_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 edilmedi | Sürüm; Simge yok; Optimize edilmiş*3 |
. *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.