我们注意到,一些死函数没有从生成的共享对象文件 (.so) 中删除,该文件是作为发布版本构建的(通过“ndk-build”,不带任何参数)。
为了证明我们引入了一个绝对不会在任何地方调用的虚拟函数(也不会导出,因为整个 .so 的默认可见性已经设置为“隐藏”)。不知何故,虚拟函数的符号仍然存在,我们可以通过对生成的 .so 使用“nm”来查看它。
我们在 Linux 11.10 上使用 NDK r8d。
是否有任何特定的编译器/链接器标志需要我们应用到 Android.mk 才能删除死代码?
谢谢!