Android编译错误——undefined reference to
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android编译错误——undefined reference to相关的知识,希望对你有一定的参考价值。
[错误描述] 未定义引用
提示如下:
bootable/recovery/minzip/Zip.c:1122: error: undefined reference to ‘selabel_lookup‘
bootable/recovery/minzip/Zip.c:1123: error: undefined reference to ‘setfscreatecon‘
bootable/recovery/minzip/Zip.c:1129: error: undefined reference to ‘freecon‘
bootable/recovery/minzip/Zip.c:1130: error: undefined reference to ‘setfscreatecon‘
bootable/recovery/minzip/DirUtil.c:151: error: undefined reference to ‘selabel_lookup‘
bootable/recovery/minzip/DirUtil.c:152: error: undefined reference to ‘setfscreatecon‘
bootable/recovery/minzip/DirUtil.c:158: error: undefined reference to ‘freecon‘
bootable/recovery/minzip/DirUtil.c:159: error: undefined reference to ‘setfscreatecon‘
collect2: error: ld returned 1 exit status
make: *** [out/target/product/fly/obj/SHARED_LIBRARIES/ua-server_intermediates/LINKED/ua-server.so] 错误 1
[问题分析] 根据提示可知,Zip.c 调用的四个函数 ‘selabel_lookup‘,‘setfscreatecon‘,‘freecon‘,‘setfscreatecon‘ 未定义。其实它们定义在 libselinux 库中,只是因为 libselinux 库没有被包含进相应模块的 android.mk 文件中,才导致这样的编译错误。
[处理方法] 打开所编译模块的 Android.mk 文件,在对应模块添加LOCAL_STATIC_LIBRARIES += libselinux,如果已有其他的库,则将 libselinux 直接添加在后面即可。
小小总结,只为抛砖引玉,如果读者在编译过程中遇到类似的问题,可以举一反三,加以解决。
#欢迎技术交流# skype账号:fxwlucky
以上是关于Android编译错误——undefined reference to的主要内容,如果未能解决你的问题,请参考以下文章
Android ndk-build 编译错误 : ld: error: undefined symbol: std::__ndk1:
Android NDK编译之undefined reference to 'JNI_CreateJavaVM'
Keil C51 编译错误 undefined identifier
使用FFmpeg在Android中编译出现 undefined reference to ‘avcodec_configuration()’ 问题