打印
[开发工具]

CubeIDE 支持哪个 C++版本?

[复制链接]
476|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
WHALEE|  楼主 | 2025-3-11 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CubeIDE 支持哪个 C++版本?
支持 C++17 吗?
它使用的编译器是什么?是 GCC 吗?
支持像“vector<string>”这样的 C++特性吗?

使用特权

评论回复
沙发
laocuo1142| | 2025-3-11 12:06 | 只看该作者
C++17及更早的版本

使用特权

评论回复
板凳
flycamelaaa| | 2025-3-11 13:00 | 只看该作者
CubeIDE支持的C++版本可能因不同的版本和配置而有所不同。

使用特权

评论回复
地板
公羊子丹| | 2025-3-23 08:00 | 只看该作者
STM32CubeIDE 使用的是 GCC(arm-none-eabi-gcc),具体版本可以在终端输入 arm-none-eabi-g++ --version 查看。

使用特权

评论回复
5
周半梅| | 2025-3-23 08:00 | 只看该作者
默认情况下,CubeIDE 使用的 GCC 版本通常支持 C++14,但可以手动配置为 C++17 或更高版本。

使用特权

评论回复
6
帛灿灿| | 2025-3-23 08:01 | 只看该作者
你可以在编译选项里添加 -std=c++17 来启用 C++17 特性,试试看是否兼容。

使用特权

评论回复
7
童雨竹| | 2025-3-23 08:02 | 只看该作者
vector<string> 这种 STL 容器是可以用的,但要确保启用了 -fno-exceptions 和 -fno-rtti,因为 STM32 平台通常不支持异常处理和运行时类型识别。

使用特权

评论回复
8
万图| | 2025-3-23 08:03 | 只看该作者
你试过用 newlib-nano 了吗?如果用标准 STL,可能需要完整的 newlib,否则会遇到某些函数缺失的问题。

使用特权

评论回复
9
Wordsworth| | 2025-3-23 08:04 | 只看该作者
如果用 C++17,可能还需要手动启用 -fno-threadsafe-statics,因为单片机上通常没有完整的多线程支持。

使用特权

评论回复
10
Bblythe| | 2025-3-23 08:05 | 只看该作者
STM32CubeIDE 里的 libstdc++ 是精简版本,部分 C++17 特性可能不完全支持,比如 filesystem。

使用特权

评论回复
11
Pulitzer| | 2025-3-23 08:06 | 只看该作者
你是打算用 C++ 开发整个项目,还是只在部分代码里使用 C++?有些驱动库是 C 语言的,混用时要小心 extern "C"。

使用特权

评论回复
12
Uriah| | 2025-3-23 08:07 | 只看该作者
如果发现 STL 容器占用太多 RAM,考虑用 eastl(EA STL)或 uSTL 这样的轻量级替代方案。

使用特权

评论回复
13
Clyde011| | 2025-3-23 08:08 | 只看该作者
试过 C++17 的 std::optional 和 std::variant 吗?这些特性对嵌入式开发可能挺有用的。

使用特权

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

本版积分规则

9

主题

9

帖子

0

粉丝