2011-08-01 64 views
0

我無法使用靜態庫建立共享庫。
我從網上下載了一些代碼,我試圖將它作爲我的android項目的庫,但我無法爲相同的創建共享庫。無法使用靜態庫建立共享庫

請在下面找到

LOCAL_PATH := $(call my-dir) 
MY_PATH := $(LOCAL_PATH) 

include $(CLEAR_VARS) 
LOCAL_CFLAGS := -DFIXED_POINT -DEXPORT="" 
LOCAL_EXPORT_LDLIBS := -llog 
LOCAL_MODULE := dspmath 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/code $(LOCAL_PATH)/dsp_fx \ 
$(LOCAL_PATH)/dspmath $(LOCAL_PATH)/ttylib 
LOCAL_SRC_FILES := \ 
dspmath/ehwutl.c dspmath/mathadv.c dspmath/mathevrc.c \ 
dspmath/globdefs.c dspmath/mathdp31.c 
include $(BUILD_SHARED_LIBRARY) 



include $(CLEAR_VARS) 
LOCAL_CFLAGS := -DFIXED_POINT -DEXPORT="" 
LOCAL_MODULE := dsp_fx 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/code $(LOCAL_PATH)/dsp_fx \ 
$(LOCAL_PATH)/dspmath $(LOCAL_PATH)/ttylib 
LOCAL_SRC_FILES := \ 
dsp_fx/basic_op.c dsp_fx/lib_wmp_fx.c dsp_fx/math_adv40.c dsp_fx/math_ext40.c \ 
dsp_fx/basic_op40.c dsp_fx/math_adv.c dsp_fx/math_ext32.c 
include $(BUILD_SHARED_LIBRARY) 



include $(CLEAR_VARS) 
LOCAL_CFLAGS := -DFIXED_POINT -DEXPORT="" 
LOCAL_MODULE := ttylib 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/code $(LOCAL_PATH)/dsp_fx \ 
$(LOCAL_PATH)/dspmath $(LOCAL_PATH)/ttylib 
LOCAL_SRC_FILES := \ 
ttylib/bdo2dit.c ttylib/tty_char.c ttylib/tty_gen.c ttylib/ttystate.c \ 
ttylib/dit2a.c  ttylib/tty_dbg.c ttylib/tty_glob.c \ 
ttylib/tone_gen.c ttylib/tty_dec.c ttylib/tty_hdr.c \ 
ttylib/tty_bit.c ttylib/tty_enc.c ttylib/tty_rate.c 
include $(BUILD_SHARED_LIBRARY) 




include $(CLEAR_VARS) 
LOCAL_CFLAGS := -DFIXED_POINT -DEXPORT="" 
LOCAL_EXPORT_LDLIBS := -llog 
LOCAL_MODULE := code 
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/code $(LOCAL_PATH)/dsp_fx \ 
$(LOCAL_PATH)/dspmath $(LOCAL_PATH)/ttylib 
LOCAL_SRC_FILES := \ 
code/a2lsp.c  code/convh.c  code/fcbgq.c  code/inv_sqrt.c code/putacbc.c \ 
code/acb_ex.c code/cshift.c code/fer.c  code/lpcana.c code/r_fft.c \ 
code/acelp_pf.c code/d3_10pf.c code/filter.c code/lsp2a.c  code/rda.c \ 
code/apf.c  code/d8_35pf.c code/fndppf.c code/lspmaq.c code/rom.c \ 
code/auto.c  code/d_fer.c  code/getext1k.c code/main.c  code/synfltr.c \ 
code/bitpack.c code/d_globs.c code/getgain.c code/maxeloc.c code/w2res.c \ 
code/bitupack.c code/d_no_fer.c code/getopt.c code/mdfyorig.c code/weight.c \ 
code/bl_intrp.c code/d_rate_1.c code/getres.c code/mod.c  code/zeroinpt.c \ 
code/bqiir.c  code/decode.c code/globs.c  code/ns127.c \ 
code/c3_10pf.c code/durbin.c code/impulser.c code/pit_shrp.c \ 
code/c8_35pf.c code/e_globs.c code/interpol.c code/pktoav.c \ 
code/comacb.c code/encode.c code/intr_cos.c code/pre_enc.c 
include $(BUILD_SHARED_LIBRARY) 


LOCAL_PATH := $(MY_PATH) 
include $(CLEAR_VARS) 
LOCAL_CFLAGS := -DFIXED_POINT -DEXPORT="" 
LOCAL_MODULE := evrc 
LOCAL_SHARED_LIBRARIES := dspmath code dsp_fx ttylib 
include $(BUILD_SHARED_LIBRARY) 

我Android.mk文件執行上面的make文件後,我得到的DIFF文件夾中的輸出這樣
1)上述make文件是在$( PROJECT)/ JNI文件夾
2)Outpur文件是如何產生詮釋他的$(PROJECT)/ OBJ /本地/ armeabi

-rwxr-xr-x+ 1 TPRM73 Domain Users 468K Aug 1 17:40 libcode.a 
-rwxr-xr-x+ 1 TPRM73 Domain Users 80K Aug 1 17:40 libdsp_fx.a 
-rwxr-xr-x+ 1 TPRM73 Domain Users 73K Aug 1 17:40 libdspmath.a 
-rwxr-xr-x+ 1 TPRM73 Domain Users 3.6K Aug 1 17:41 libevrc.so 
-rwxr-xr-x+ 1 TPRM73 Domain Users 101K Aug 1 17:41 libttylib.a 
drwxr-xr-x+ 1 TPRM73 Domain Users 0 Aug 1 17:40 objs 

如果妳觀察libevrc.so的大小,它是3.6K是少比靜態庫。請幫助我解決上述問題。請讓我知道你是否想要更多的信息。

感謝&問候,
SSuman185

回答

2

我們必須使用的LOCAL_WHOLE_STATIC_LIBRARIES代替LOCAL_STATIC_LIBRARIES,以避免使整個靜態庫將在共享庫被加載去除未使用的功能。

這是我從Google獲得的基本答案。任何人如果知道,請添加更多信息。

0

[Dhanavel]:你說得對!

我也遇到了類似的問題。將LOCAL_STATIC_LIBRARIES替換爲LOCAL_WHOLE_STATIC_LIBRARIES後,鏈接發生並最終生成.so。