[开发工具] CubeIDE 支持哪个 C++版本?

[复制链接]
976|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 查看。
周半梅 发表于 2025-3-23 08:00 | 显示全部楼层
默认情况下,CubeIDE 使用的 GCC 版本通常支持 C++14,但可以手动配置为 C++17 或更高版本。
帛灿灿 发表于 2025-3-23 08:01 | 显示全部楼层
你可以在编译选项里添加 -std=c++17 来启用 C++17 特性,试试看是否兼容。
童雨竹 发表于 2025-3-23 08:02 | 显示全部楼层
vector<string> 这种 STL 容器是可以用的,但要确保启用了 -fno-exceptions 和 -fno-rtti,因为 STM32 平台通常不支持异常处理和运行时类型识别。
万图 发表于 2025-3-23 08:03 | 显示全部楼层
你试过用 newlib-nano 了吗?如果用标准 STL,可能需要完整的 newlib,否则会遇到某些函数缺失的问题。
Wordsworth 发表于 2025-3-23 08:04 | 显示全部楼层
如果用 C++17,可能还需要手动启用 -fno-threadsafe-statics,因为单片机上通常没有完整的多线程支持。
Bblythe 发表于 2025-3-23 08:05 | 显示全部楼层
STM32CubeIDE 里的 libstdc++ 是精简版本,部分 C++17 特性可能不完全支持,比如 filesystem。
Pulitzer 发表于 2025-3-23 08:06 | 显示全部楼层
你是打算用 C++ 开发整个项目,还是只在部分代码里使用 C++?有些驱动库是 C 语言的,混用时要小心 extern "C"。
Uriah 发表于 2025-3-23 08:07 | 显示全部楼层
如果发现 STL 容器占用太多 RAM,考虑用 eastl(EA STL)或 uSTL 这样的轻量级替代方案。
Clyde011 发表于 2025-3-23 08:08 | 显示全部楼层
试过 C++17 的 std::optional 和 std::variant 吗?这些特性对嵌入式开发可能挺有用的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

53

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部