ndk:链接静态库错误

时间:2014-09-09 17:37:20

标签: android-ndk

我已编译(希望成功)fftw库。我想将它链接到我的ndk项目。 我有2个android.mk文件:  /分析/ fftw3 /

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := fftw3

LOCAL_SRC_FILES := lib/libfftw3f.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

#LOCAL_LDFLAGS := $(LOCAL_PATH)/lib/libfftw3f.a
#LOCAL_LDLIBS := $(LOCAL_PATH)/lib/libfftw3f.a


include $(PREBUILT_STATIC_LIBRARY)

#$(call import-module, fftw3)

/

中的主要android.mk文件
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := jni
FILE_LIST := $(wildcard $(LOCAL_PATH)/*.c)
FILE_LIST += $(wildcard $(LOCAL_PATH)/**/*.c)
FILE_LIST += $(wildcard $(LOCAL_PATH)/**/**/*.c)
FILE_LIST += $(wildcard $(LOCAL_PATH)/**/**/**/*.c)

LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
#LOCAL_SRC_FILES := analysis/fftw3/lib/libfftw3f.a
#LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/analysis/fftw3/include

#LOCAL_LDFLAGS := $(LOCAL_PATH)/analysis/fftw3/lib/libfftw3f.a
#LOCAL_LDLIBS := $(LOCAL_PATH)/analysis/fftw3/lib/libfftw3f.a
LOCAL_STATIC_LIBRARIES := analysis/fftw3/fftw3

include $(BUILD_SHARED_LIBRARY)

include $(LOCAL_PATH)/analysis/fftw3/Android.mk

我尝试过很多东西(正如你可以看到的那样评论......)但是当我尝试从libfftw3f库调用一个函数时,我得到的是“未定义的引用”。 一切似乎都好。我不知道我错过了什么。

1 个答案:

答案 0 :(得分:0)

  

LOCAL_STATIC_LIBRARIES:= analysis / fftw3 / fftw3

这一行应该是

  

LOCAL_STATIC_LIBRARIES:= fftw3

实际上,您只能列出本地静态库,其名称与您在行

中指定的名称相同
  

LOCAL_MODULE:= fftw3

如果你为lib LOCAL_SRC_FILE指定的路径是正确的,它应该正确链接。