背景:
我的应用程序无法在链接阶段运行并获得以下消息:
link_image [1995] … lib1.so
无法链接可执行文件
应用程序依赖于几个动态库,如下所示:
app需要lib1,lib1 dlopen lib2,在lib1中有一个由app导出的符号(一个全局变量).
我用一个简单的程序测试了lib2,没问题.所以我认为失败是由链接阶段的lib1引起的.(我可以保证应用程序所需的所有其他库都在当前目录中,并且“./”已添加到LD_LIBRARY_PATH.我也尝试将所有库放入到/ system / lib)
题:
>如何启用链接器的调试输出以获取详细错误消息?
>还有其他建议吗?
解决方法
你必须重新编译.在这里抓取相应的(分支,标记)源:
https://github.com/android/platform_bionic/tree/master/linker
在Android.mk中,您要将其设置为1:
# Set LINKER_DEBUG to either 1 or 0 # LOCAL_CFLAGS += -DLINKER_DEBUG=0
如果你想降低,请查看TRACE()和DL_ERR().正如您将看到的,TRACE()是预处理器定义的,因此被编译出来.否则,您可以快速修补自己的debug_verbosity或其检查值.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。