簡體   English   中英

讓 Arduino IDE 為 C++14 編譯

[英]Getting Arduino IDE to compile for C++14

我一直在尋找修改 Arduino IDE 1.x 甚至 Arduino CLI(我沒有使用但願意采用)下的構建標志,以便我可以取消定義 -std=gnu++11 而是定義-std=gnu++14

我發現了一個與此相關的問題,它幾乎滿足了我的需求:

Arduino 1.0.6:如何更改編譯器標志?

但它只顯示了如何添加標志,而不是刪除它們。 我發現了另一篇關於將 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM