Android静态库到共享库

时间:2014-02-17 09:08:47

标签: android automake android-build

我在 framework / av /

目录中添加了一个模块

Android.mk以行

结束时,可以构建代码

include $(BUILD_STATIC_LIBRARY)

但是,因为我需要一个共享库文件(比如abcd.so), 我将此行更改为

include $(BUILD_SHARED_LIBRARY)

然后我得到的错误引用了一些未定义的引用错误。

我需要在这里更改任何内容吗?

感谢

out/target/product/abcd/obj/SHARED_LIBRARIES/libudev_intermediates/libudev.o: in function udev_new:frameworks/av/libudev/libudev.c:195: error: undefined reference to 'secure_getenv'
target 
Symbolic: libcutils (out/target/product/abcd/symbols/system/lib/libcutils.so)
collect2: ld returned 1 exit status
make: *** [out/target/product/abcd/obj/SHARED_LIBRARIES/libudev_intermediates/LINKED/libudev.so] Error 1
make: *** Waiting for unfinished jobs....

1 个答案:

答案 0 :(得分:1)

在Android系统中,还有许多其他模块依赖于静态 av 模块。我建议您构建静态库和共享库。即使您创建了共享库,也应该注意依赖。这些变化可能导致其他问题。

代码看起来像这样:

include $(BUILD_STATIC_LIBRARY)
#appending this line for shared library
LOCAL_MODULE := xxx_shared
include $(BUILD_SHARED_LIBRARY)