[英]Getting Arduino IDE to compile for C++14
我一直在寻找修改 Arduino IDE 1.x 甚至 Arduino CLI(我没有使用但愿意采用)下的构建标志,以便我可以取消定义 -std=gnu++11 而是定义-std=gnu++14
我发现了一个与此相关的问题,它几乎满足了我的需求:
但它只显示了如何添加标志,而不是删除它们。 我发现了另一篇关于将 arduino 更改为 GNU C++17 的相关帖子,但答案是不可能的。
在这种情况下,我知道这是可能的,因为我在 Platform IO 中这样做是为了使用 htcw_gfx 库。 它在大多数可以合理运行 GFX 的平台上运行良好。
但我只是不知道如何摆弄 Arduino 让它按照我需要的方式跳舞。
任何帮助将不胜感激。
您可以修改hardware/arduino/avr/platform.txt
文件中的默认编译标志。
$ grep -n "std" hardware/arduino/avr/platform.txt
23:compiler.c.flags=-c -g -Os {compiler.warning_flags} -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects
28:compiler.cpp.flags=-c -g -Os {compiler.warning_flags} -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto
对于某些 linux 系统,以下内容可以自动执行此操作:
dirname $(realpath $(which arduino)) | xargs -I{} sed -i "s/\(std=gnu++1\)1/\14/" {}/hardware/arduino/avr/platform.txt
但这不是很便携,如果用户安装了带有 Snap 的 Arduino(因为 snap 已经安装了这些文件 RO),它将无法工作。
资料来源:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.