首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android NDK +两个共享库+ RTTI +动态转换=不可能

Android NDK +两个共享库+ RTTI +动态转换=不可能
EN

Stack Overflow用户
提问于 2019-06-03 11:09:50
回答 1查看 448关注 0票数 0

到目前为止,我已经在一个星期天干了4个小时了。我快要放弃了。我几乎尝试了我在互联网上找到的每一个帖子,这就是简单的will..not..work!

任何带有引用或指针的dynamic_cast实例要么返回null,要么导致程序完全崩溃。这对我的整个应用程序架构绝对是100%关键的,如果我不能让它运行,我可能只能使用200MB的静态库。

我正在使用-frtti (没有-fno-rtti)构建,并在我所有的库上使用-Wl,-export-dynamic (也尝试过rdynamic)进行链接。

我还通过使用自己的loadLibrary()打开每个库来手动重写Java的dlopen(fn, RTLD_NOW | RTLD_GLOBAL) (我已经尝试了所有可能的标志组合。

这是不可能的吗?把我在其他平台上用了整整十年的东西留给android,然后把它变成一个无法解决的大问题。

EN

回答 1

Stack Overflow用户

发布于 2019-06-06 03:25:15

这可能是https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md#rtti_exceptions-not-working-across-library-boundaries。RTTI使得在动态加载库时获得正确的C++变得很棘手。每个类型都必须有一个关键函数(虚拟的、非内联的、非析构函数方法),以便RTTI跨共享库边界工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56420705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档