首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >啤酒(MP)不支持/不支持C++的哪些部分?

啤酒(MP)不支持/不支持C++的哪些部分?
EN

Stack Overflow用户
提问于 2011-01-05 19:09:54
回答 2查看 457关注 0票数 3

嗨,我想弄清楚C++在BrewMP上是什么,什么是不可能的。

是否有人有使用C++与Brew,特别是BrewMP的第一手经验,并且可以说,如果他们能够使这些东西在设备上工作时没有太多的麻烦:

  • 静态变量/函数
  • 模板
  • 例外情况
  • 铸造等
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-10 07:00:22

  1. 以前,在Brew3.X中,不支持全局变量和静态变量。然而,在啤酒MP,有一个ELF2MOD工具。这样,您就可以使用全局变量和静态变量。 请参见SDK路径,如: C:\Program \Qualcomm\Brew\Toolset 7.10 Rev 10.0.1489821\bin

如果您的全局或静态数据是非POD(必须调用C++类构造函数的C++对象),请不要使用它。请参阅https://developer.brewmp.com/forum/using-static-variables-classes-0

  1. 标准C库(stdc或c运行时)在BrewMP中是绝对禁止的,例如memset和sprintf。原因:在带有main()条目的一般进程模块中,C运行时的进程模块在用户代码调用它们之前已经自动初始化。BrewMP mod (mod1)文件被动态加载和链接。没有适当的时间调用初始化,这些MODs不应该单独调用C运行时初始化。
  2. C++模板函数和模板类:模板代码实例化是在编译时生成的,它们不需要任何加载时和运行时代码初始化。它们可以安全地在设备中使用。
  3. C++例外:我没有测试它。在默认的ARM编译器选项中,异常不会打开。而异常则需要C++ RTTI的启用。
  4. C++ cast: dynamic_cast是一个大问题,因为它需要支持运行时类型识别,并在运行时进行类型检查。其他强制转换(如static_cast、reinterpret_cast和const_cast )只是编译器在编译时检查的提示。
票数 2
EN

Stack Overflow用户

发布于 2011-01-08 21:38:46

在以下方面存在一些问题:

  • 虚拟或抽象方法
  • 静态和全局变量支持
  • 全局对象的静态初始化

大多数问题都可以使用自定义后链接器来解决。它对我很好,希望它也适合你。

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

https://stackoverflow.com/questions/4608195

复制
相关文章

相似问题

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