打印
[其他ST产品]

STM32CubeIDE 中的 C++ 在哪里?

[复制链接]
257|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lilaiju|  楼主 | 2025-3-18 09:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 STM Cube IDE 中启动新项目时,会给出生成 C++ 而不是 C 代码的选项,但当选择C++时,仍然会时生成 C 代码......想使用 C++ ,咋配置呢?

使用特权

评论回复
沙发
公羊子丹| | 2025-3-19 08:02 | 只看该作者
STM32CubeIDE 里默认是 C 代码,即使选了 C++,生成的 HAL 代码还是基于 C 的,需要手动调整。

使用特权

评论回复
板凳
周半梅| | 2025-3-19 08:04 | 只看该作者
你试过把 main.c 改成 main.cpp 吗?然后在编译器选项里加上 -fno-rtti -fno-exceptions 以避免不必要的 C++ 运行时特性。

使用特权

评论回复
地板
帛灿灿| | 2025-3-19 08:05 | 只看该作者
在 Project → Properties → C/C++ Build → Settings 里,检查编译器是不是 G++,有时候默认还是用的 GCC(C 编译器)。

使用特权

评论回复
5
童雨竹| | 2025-3-19 08:06 | 只看该作者
你需要手动用 extern "C" 包裹 HAL 头文件,否则链接时可能会报未定义引用的错误。

使用特权

评论回复
6
万图| | 2025-3-19 08:07 | 只看该作者
STM32 的 HAL 库本身是用 C 写的,如果要用 C++,你可以封装成类,但底层还是要调用 HAL C 代码。

使用特权

评论回复
7
Wordsworth| | 2025-3-19 08:08 | 只看该作者
你试过在 CMakeLists.txt 或 Makefile 里手动添加 CPPFLAGS 选项吗?有时候 STM32CubeIDE 生成的 Makefile 可能没有正确配置 C++ 选项。

使用特权

评论回复
8
Bblythe| | 2025-3-19 08:09 | 只看该作者
如果你要用 C++ 的标准库,记得开启 libstdc++,但注意 STM32 没有默认的操作系统支持 new 和 delete,要自己管理内存。

使用特权

评论回复
9
Pulitzer| | 2025-3-19 08:10 | 只看该作者
你是想在裸机环境下用 C++ 还是配合 FreeRTOS?在 RTOS 里用 C++ 可能需要额外的 heap 管理。

使用特权

评论回复
10
Uriah| | 2025-3-19 08:11 | 只看该作者
试试看 Project → Convert to C++ Project,然后手动改 编译工具链,让它默认用 C++ 编译器。

使用特权

评论回复
11
Clyde011| | 2025-3-19 08:12 | 只看该作者
你可以手动创建 .cpp 文件,比如 MyClass.cpp,然后写 C++ 代码,看看 CubeIDE 能不能正确编译和链接。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

13

帖子

0

粉丝