This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器:虚拟析构器自动创建堆段

Guru**** 2925550 points

Other Parts Discussed in Thread: TMS320F28054M, C2000WARE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/938121/compiler-virtual-destructor-automatically-creating-heap-section

主题中讨论的其他器件:TMS320F28054MC2000WARE

工具/软件:TI C/C++编译器

大家好、

我正在为 TMS320F28054M 开发裸机 C++程序、并使用 TMS320C2000 C/C++编译器 v20.2.LTS 构建我的项目。 我注意到、每当我使用虚拟析构函数实例化某个类时、工具链会自动为堆生成1KB .esysmem 段。 这很奇怪、因为我实际上根本不使用动态存储器;实际上、即使在栈上创建变量时也会发生这种情况。

这是编译器错误吗? 我不是很熟悉虚拟析构函数的内部工作原理、所以这可能是意料之中的事情。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我相信您有与 本论坛主题中讨论的问题相同的问题。   

    一种可能的解决方案是使用较新的 EABI、而不是默认的 COFF ABI。  如果您使用的所有其他代码(C2000Ware 等)支持 EABI、则这可能适合您。

    否则、该论坛帖子详细介绍了另一种需要重新定义新操作员的解决方案。

    谢谢、此致、

    乔治