首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有STM32CubeMX的C++和Eclipse System Workbench for STM32 AC6 tools

带有STM32CubeMX的C++和Eclipse System Workbench for STM32 AC6 tools
EN

Stack Overflow用户
提问于 2017-11-16 22:45:32
回答 3查看 7.2K关注 0票数 1

我和STM32CubeMX一起为Nucleo F429ZI演示板生成了一个FreeRTOS项目,在Eclipse System Workbench for STM32 AC6工具上成功构建并在演示板上运行。

我想用C++stl libraries.<

简单地将main.c重命名为main.cpp不起作用...

我看到有人能够在FreeRTOS中使用C++,但我找不到任何帮助,如果使用这个STM32Toolchain是可能的。

EN

回答 3

Stack Overflow用户

发布于 2017-11-17 18:41:19

是的,它是可以拥有的。而且这并不是很难(我假设您使用的是标准的ARM,非易失性,非易失性)。但是你必须记住,在CubeMX中的任何进一步修改都会把你的项目恢复到C。

  1. 将main.c重命名为main.cpp (现在,在编译过程中应该会得到一个错误main.c

  1. 右键单击您的STM项目并选择“转换为C++”。现在编译成功!

就这样。请记住,您不能直接从.c文件调用C++函数。此外,当函数在.cpp文件中并且没有extern "C"属性时,单片机调用中断也是不可能的。无论您是否将其包含到项目FreeRTOS中,或由STM准备的任何其他内容。C++编译器只适用于.cpp文件,对.c文件没有影响。因此,它们的工作方式与之前一样。

票数 2
EN

Stack Overflow用户

发布于 2017-11-20 22:57:56

used了Eclipse的Convert to C++菜单,而不是New -> Convert to a C/C++ project (Adds C/C++ Nature)菜单。

此命令正确复制了所有项目设置。然后我将main.c重命名为main.cpp,并进行了编译,现在它可以工作了。

票数 1
EN

Stack Overflow用户

发布于 2019-09-21 19:09:32

我这么做是为了Keil IDE。通常,您应该使用更新的HAL驱动程序由STM32CubeMX生成project项目,然后在Keil ARM MDK中打开项目,将STM32 -option-C/ C++ -MiscControls更改为--cpp,最后一步,您应该在.hpp和.cpp中创建用户C++文件

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

https://stackoverflow.com/questions/47332543

复制
相关文章

相似问题

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