首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让Arduino IDE为C++14编译

让Arduino IDE为C++14编译
EN

Stack Overflow用户
提问于 2022-04-03 17:03:15
回答 1查看 376关注 0票数 2

我一直希望修改Arduino的IDE 1.x下的构建标志,甚至修改Arduino CLI (我还没有使用但愿意采用),这样我就可以取消定义-std=gnu++11,而不是定义-std=gnu++14。

我发现了一个与此相关的问题,它给了我几乎我需要的东西:

Arduino 1.0.6: How to change compiler flag?

但它只展示了如何添加标志,而不是删除标志。我找到了另一篇关于将arduino转换为GNU C++17的相关文章,但答案是这是不可能的。

在这种情况下,我知道这是可能的,因为我在平台IO中这样做是为了使用htcw_gfx库。它在大多数能合理运行GFX的平台上工作得很好。

但我只是不知道如何摆弄阿杜伊诺,让它以我需要的方式跳舞。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-16 11:00:24

您可以修改hardware/arduino/avr/platform.txt文件中的默认编译标志。

代码语言:javascript
运行
复制
$ 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系统,以下内容可以自动完成此操作:

代码语言:javascript
运行
复制
dirname $(realpath $(which arduino)) | xargs -I{} sed -i "s/\(std=gnu++1\)1/\14/" {}/hardware/arduino/avr/platform.txt

但是这并不是非常便携,如果用户已经安装了Snap的Arduino (因为snap安装了这些文件RO),它就不能工作。

资料来源:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71728125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档