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 veyaN
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.
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.