2012-12-14 4 views
9

Powiel możliwe:
Prevent ndk-build from automatically cleaning moduleKażdy NDK build jest pełne odbudowanie

Android projekt z biblioteki NDK. NDK r8c. Kompilowanie pod Cygwin (to stary projekt).

Kilka plików C++ i C oraz niektóre biblioteki .aa połączone za pomocą LOCAL_LDLIBS.

Od pewnego czasu zauważam, że każda kompilacja NDK przechodzi przez wszystkie pliki źródłowe. Nawet jeśli wywołuję ndk-build dwa razy z rzędu, przy drugiej próbie jest pełna odbudowa. W plikach .mk, które widzę, nie ma niczego, co można zobaczyć, a polecenie, które wywołuję do zbudowania, to wanilia $NDKPATH/ndk-build. Nie ma opcji -B w dowolnym miejscu.

Jedynym zmarszczka jest taka: na każdej budowie, NDK mówi co następuje:

/cygdrive/c/android-ndk-r8c/build/core/add-application.mk:128: Android NDK: WARNING: 
APP_PLATFORM android-9 is larger than android:minSdkVersion 3 in 
/cygdrive/d/AppPath/AndroidManifest.xml 

Co się dzieje, proszę? Czy mogę w jakiś sposób sprawdzić na podstawie dat plików make podejmując decyzję o odbudowaniu wszystkiego?

+0

ustalona w NDK R8d. –

Odpowiedz

13

Istnieje znany błąd w r8c, który powoduje pełne przebudowanie, nawet bez zmiany kodu źródłowego. Zobacz this bug report.

Proponowana poprawka (nie moje) jest zmiana linii 289 produkcji/rdzeń/definitions.mk z

$1: $$(__ndk_file_dir)

do

$1: | $$(__ndk_file_dir)

+0

Zastosował łatkę, zadziałało. Aby uzyskać lepszą odpowiedź (i upvotes), możesz wkleić skrypt łatki tutaj. –

+1

To jest poprawka. Polecam również ustawienie flagi -j dla make. Zobacz artykuł [this article] (http://www.renderpaz.com/2012/12/speed-up-your-android-ndk-build.html), aby uzyskać opis. Krótkie podsumowanie: dodaj '' do build.xml. – addaon

+0

@ glo: To nie ma związku z tym pytaniem. Jeśli nie możesz znaleźć rozwiązania dla tego problemu, możesz napisać _new_ pytanie. – Michael

Powiązane problemy