Autor Wątek: [android-ndk] Problem z kompilacją statycznej biblioteki.  (Przeczytany 1341 razy)

Offline Syriusz

  • Użytkownik

# Sierpień 08, 2011, 10:12:31
Mam plik android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := some_library
LOCAL_SRC_FILES := source0.cpp source1.cpp

include $(BUILD_STATIC_LIBRARY)

I tu pojawia się problem, kiedy dam BUILD_SHARED_LIBRARY wszystko działa ok, pliki się kompilują ew. dostaje odpowiedni .so. Jednak chcę zbudować bibliotekę statycznie, a następnie zlinkować ją później. I tu pojawiają się schody. Gdy zamienię BUILD_SHARED_LIBRARY na BUILD_STATIC_LIBRARY nic się nie dzieje...
Żadnych błędów od ndk-build, po prostu nic. Myślałem że ja coś zepsułem (i pewnie w istocie tak jest) jednak podobny problem również występuje gdy próbuje skompilować przykład two-libs z ndk. Tj. oryginalny android.mk działa, jednak gdy pozostawię tylko fragment do budowy biblioteki statycznej występuje ten sam problem. Wygląda na to że ndk nie buduje .a jeśli nie znajdzie jawnej zależności że dana biblioteka jest wymagana, przynajmniej tak mi się wydaje. Nie wie przypadkiem ktoś jak rozwiązać ten problem?



Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline PlayeRom

  • Użytkownik
    • PlayeRom

# Wrzesień 21, 2011, 16:25:11
To co opisujesz to nie bug, to feature. Finalna biblioteka musi być SHARED aby system mógł ją dołączyć do aplikacji Java'owej.
Z kolei biblioteki STATIC, możesz podłączać do biblioteki SHARED, jako jakieś tam pod-moduły. To właśnie robi "two-libs".