我在 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....
答案 0 :(得分:1)
在Android系统中,还有许多其他模块依赖于静态 av 模块。我建议您构建静态库和共享库。即使您创建了共享库,也应该注意依赖。这些变化可能导致其他问题。
代码看起来像这样:
include $(BUILD_STATIC_LIBRARY)
#appending this line for shared library
LOCAL_MODULE := xxx_shared
include $(BUILD_SHARED_LIBRARY)