未找到LOCAL_LDLIBS中的链接

时间:2014-04-02 03:09:57

标签: android android-ndk

我将libsonivox.so复制到/ platforms / android-14 / arch-arm / usr / lib /,我的android.mk文件是:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := midi
LOCAL_SRC_FILES := midi.c
LOCAL_LDLIBS    += -lsonivox
include $(BUILD_SHARED_LIBRARY)

但是当我运行ndk-build时出现此错误:

/home/sebastian/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lsonivox

知道我做错了什么吗?谢谢!

PS:这可能看起来像一个重复的帖子,但我读了与此主题相关的所有其他帖子,其中没有一个帮助

2 个答案:

答案 0 :(得分:2)

请用完整路径替换local_ldlibs。

LOCAL_LDLIBS     := $(LOCAL_PATH)/jniLibs/lsonivox.so \\path to the lsonivox

答案 1 :(得分:0)

是的,您的路径似乎有些问题。但是,使用任何预先构建的第三方库的首选方法是使用include $(PREBUILT_SHARED_LIBRARY)方法。

因此,我认为这可能主要与以下内容重复:

NDK: How to include Prebuilt Shared Library Regardless of Architecture

此方法的另一个非常好的好处是,如果预构建的库具有任何关联的标头,则可以对其进行设置,以便NDK构建系统为您传播包含路径。这太棒了。