我已經創建了一個android應用程序,這裏大部分代碼都在c中,所以我使用jni創建了它。我必須創建socket.so
文件,其中我必須使用libtest.so
。避免使用.a創建.so
同時在socket.so中使用libtest.so
所以我得到了error:undefined reference to function()
。我的函數()存在於libtest.so
內。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libtest
LOCAL_SRC_FILES := libtest.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := socket
LOCAL_SHARED_LIBRARIES += libtest
LOCAL_SRC_FILES := source/interface.c source/file.c
LOCAL_LDFLAGS += libtest.a
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../libtest/jni/include
include $(BUILD_SHARED_LIBRARY)
,但它同時需要libtest.so
& libtest.a
文件存在:通過這麼建議,我已經建立了我Android.mk如下使用Avid這一點。如果我只使用libtest.a
就好了。
因爲我的要求是創建libtest.so並將其包含在socket.so中,任何人都可以告訴我如何避免依賴.a文件來創建.so文件。
如果我會評論LOCAL_LDFLAGS += libtest.a
然後我得到了error:undefined reference to function()
任何一個plz幫助我走出這個問題.......
while nm -a libxml2.so我沒有得到任何符號。 但是當我完成nm -a libxml2.a時,我得到了它們...... .. – 2012-07-27 11:22:44
使用'nm -D'作爲共享庫,否則您將看不到任何東西。不要使用'-a'作爲靜態庫,它將打印調試符號而不是普通的符號。 – onitake 2012-07-27 11:32:05
是通過使用-D我能夠得到東西 – 2012-07-27 11:53:24