实际上,共享对象文件对于调试和发布版本似乎是相同的. (libs文件夹中输出的唯一区别在于是否创建了gsb.setup和gdbserver文件.)我在我的Application.mk中使用APP_CFLAGS = -O3覆盖NDK的优化集,但是我不希望发布版本通过包含-g标志来生成调试符号.
我发现了对SO的评论‘In both cases,debug and release,it leaves the -g flag in because,to quote the comment,“we generate symbol versions of the binaries that are later stripped when they are copied to the final project’s libs/ directory”‘,另一个说明:‘JNI cannot find the functions for java if they don’t have names.’
ndk-build肯定会从obj / armeabi-v7a / libXXXlib.so文件中删除一些内容,因为它比最终在libs中创建的文件大得多,但它似乎仍然保留了我的所有函数和变量的名称.文件.
JNI是否需要我所有的函数名称(而不仅仅是本机代码的入口点)?
如果没有,我该如何删除不需要的符号?
解决方法
原文地址:https://www.jb51.cc/android/309579.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。