2011-04-15 16 views
5

önceden oluşturulmuş statik kitaplık da dahil olmak üzere, önceden oluşturulmuş bir statik kitaplığa dayalı olarak paylaşılan bir kitaplık oluşturmam gerekiyor. Ben elle ve çalıştırın aşağıdaki yoksaAndroid yapı sisteminde

make: *** No rule to make target `out/target/product/generic/obj/STATIC_LIBRARIES/libMyStatic_intermediates/libMyStatic.a', needed by `out/target/product/generic/obj/SHARED_LIBRARIES/libMyShared_intermediates/LINKED/libMyShared.so'. Stop. 
make: Leaving directory `/home/test/src/android' 

: My makefile src/android/dış/BBKod/Android.mk:

LOCAL_PATH:= $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_ARM_MODE := arm 
LOCAL_MODULE := libMyStatic 
LOCAL_SRC_FILES := libStatic.a 
include $(PREBUILT_STATIC_LIBRARY) 

include $(CLEAR_VARS) 
LOCAL_MODULE_TAGS := eng 
LOCAL_ARM_MODE := arm 
LOCAL_PRELINK_MODULE := false 
LOCAL_MODULE := libMyShared 
LOCAL_WHOLE_STATIC_LIBRARIES := libMyStatic 
include $(BUILD_SHARED_LIBRARY) 

Ben yaparak inşa: mmm external/mycode ve hatayı alıyorum mmm tekrar çalışır:

cp external/mycode/libStatic.a out/target/product/generic/obj/STATIC_LIBRARIES/libMyStatic_intermediates/libMyStatic.a 

bir NDK projesini yapmak ve ndk-build komut dosyası ararken bunun hemen çalışır düşünüyorum bu Android.mk dosyayı kullanın. Yani sorun Android Build sistemini kullandığımda libMyStatic.a dosyasının oluşturulmadığı ve ara klasöre kopyalanmaması ile ilgili bir şey var. Yapı sistemi statik kütüphaneyi ara klasöre kopyalamak için ne yapmam gerektiğini bana söyleyebilir mi?

+0

i u benimle ur şekilde paylaşmak için sorun olur u düzeltmek benzer problem.Have ile gelen thx –

+0

Belki bu size yardımcı olabilir: [link önceden oluşturulmuş paylaşılan kütüphane Android.mk kullanarak] [1] [1]: http://stackoverflow.com/questions/14322766/android-link-prebuilt-shared-library-so-within-jar-file-in-ndk Bu değil – mrAlmond

cevap

4

böyle statik kütüphane inşa deneyin

"LOCAL_LDFLAGS += -lMyStatic 
1

için mk dosyasını

"LOCAL_WHOLE_STATIC_LIBRARIES := libMyStatic" 

değiştirin. ?

include $(CLEAR_VARS) 

LOCAL_MODULE := libMyStatic 
LOCAL_MODULE_CLASS := STATIC_LIBRARIES 
LOCAL_MODULE_SUFFIX := .a 
LOCAL_SRC_FILES := libMyStatic.a 

include $(BUILD_PREBUILT) 
+0

komple bir çözüm ... – Flayn

+0

Önceden hazırlanmış kitaplığı yerleştirdiğiniz yere bağlı olarak neredeyse tamamlandı. Benim durumumda dış klasörde değildi. AOSP yapı sistemini lib'im, bağımlılıkları ve bağımlıları hakkında bilgilendirmek için ana dizinlerdeki makefileları düzenlemek zorunda kaldım! – Paschalis