如果我的代码使用RTTI,那么它将无法在Android上使用?

 2023-01-20    329  

问题描述

我在Android Native Development Kit食谱中阅读:

默认情况下,Android提供最小的C ++支持.没有运行时间
类型信息(RTTI)和C ++异常支持,甚至C ++
标准库支持是部分的.以下是
默认情况下,由Android NDK支持的C ++标头:

如果我的代码使用RTTI,那么它将无法在Android上使用?

卡塞特,cctype,cerrno,cfloat,升降,cmath,csetjmp,csignal,cstddef,cstdint,cstdint,
cstdio,cstdlib,cstring,ctime,cwchar,new,stl_pair.h,typeInfo,strical

可以使用不同的C ++添加更多C ++支持
库. NDK带有GABI ++,STLPORT和GNUSTL C ++
库,除了系统默认一个.在我们的示例代码中,我们使用了
外部” C”包装C ++方法.这是为了避免C ++熔断
JNI函数名称. C ++名称混乱可以更改功能
包括有关参数的类型信息的名称,是否
功能是虚拟的,等等.虽然这使C ++能够链接
超载功能,它打破了JNI功能发现机制.

我们还可以使用涵盖的明确功能注册方法
加载本机库和注册本机方法的配方
第2章,Java本地界面,以摆脱包装.

如果在应用程序的逻辑中使用了RTTI,则它将无法在Android上使用?

推荐答案

您可以将其打开,默认情况下关闭.要将其打开,请将LOCAL_CPPFLAGS += -frtti添加到您的makefile中.像往常一样,带有此标志的代码将带来更多的内存,在磁盘上更大,并且比使用代码稍慢.

以上所述是小编给大家介绍的如果我的代码使用RTTI,那么它将无法在Android上使用?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/26185.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。