【问题标题】:Android NDK - undefined reference to methods of Prebuilt Shared LibraryAndroid NDK - 对预建共享库方法的未定义引用
【发布时间】:2015-07-11 13:21:24
【问题描述】:

首先我做了一个简单的项目,然后我从 ndk-build 构建该项目,它给了我 firs-lib.so 文件。现在我想将该文件用作预建共享库到我的另一个项目中。我已经更新了 .mk 文件。

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := firs-lib-prebuilt
LOCAL_SRC_FILES := libfirs-lib.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := ndk_first
MY_SOURCES := main.c
MY_SOURCES += base.c
LOCAL_SRC_FILES := $(MY_SOURCES)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
 LOCAL_SHARED_LIBRARY := firs-lib-prebuilt
include $(BUILD_SHARED_LIBRARY)

上面是我的 Android.mk 文件 每当我尝试从 Prebuild Shared 库中调用一个函数时,它都会说未定义对方法的引用。

请给我一些建议来实现这一目标。

【问题讨论】:

  • 预建库是否有可能使用 C++?
  • 不,它只是一个 .h 和 .c 文件。没有 CPP 代码。

标签: android-ndk


【解决方案1】:

除了声明你的模块对 firs-lib-prebuilt 的依赖之外,一切都是正确的。

LOCAL_SHARED_LIBRARY 更改为LOCAL_SHARED_LIBRARIES。这肯定是一个语法错误,因为您只设置了一个库,但 LOCAL_SHARED_LIBRARIES 是 ndk 构建系统将考虑的唯一变量:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-08
    • 2017-03-13
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多