..

Arduino IDE中启用C++11支持的方法

由于项目需要,我目前正在用Arduino IDE作为开发环境。然而在实际项目中发现,Arduino IDE默认没有启用C++11标准,这导致在代码中使用诸如nullptrauto等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平台为例):

  1. 找到并打开platform.txt文档,由于我是做CubeCell的开发,因此我的地址如下(将{username}替换为你的用户名):

    C:\Users\{username}\AppData\Local\Arduino15\packages\CubeCell\hardware\CubeCell\1.5.0

  2. 找到compiler.cpp.flags=这一行,在最后添加-std=gnu++11

  3. 保存并关闭文件,之后重启Arduino IDE,这样就开启C++11支持了。

参考链接:How can I use a C++11 to program the Arduino?-stackoverflow