..
Arduino IDE中启用C++11支持的方法
由于项目需要,我目前正在用Arduino IDE作为开发环境。然而在实际项目中发现,Arduino IDE默认没有启用C++11标准,这导致在代码中使用诸如nullptr、auto等C++11特性时会出现编译错误。
为了解决这一问题,本文记录了一种通过修改平台配置文件以启用C++11支持的方法。
此方法已在Arduino IDE version 2.3.7及CubeCell平台上测试有效(2026.1.19)。
需要说明的是:
- Arduino IDE本身基于GCC工具链
- 是否支持C++11,取决于具体开发板平台(core)中对编译参数的配置
- 某些第三方平台(如CubeCell)默认并未在
compiler.cpp.flags中指定-std=选项
因此,即使底层编译器具备C++11能力,也可能由于未显式启用而无法使用相关特性。
启用C++11特性的具体步骤如下(以Windows 11系统及CubeCell平台为例):
-
找到并打开platform.txt文档,由于我是做CubeCell的开发,因此我的地址如下(将
{username}替换为你的用户名):C:\Users\{username}\AppData\Local\Arduino15\packages\CubeCell\hardware\CubeCell\1.5.0 -
找到
compiler.cpp.flags=这一行,在最后添加-std=gnu++11 -
保存并关闭文件,之后重启Arduino IDE,这样就开启C++11支持了。
参考链接:How can I use a C++11 to program the Arduino?-stackoverflow