Wie man C++17 / C++23 mit PlatformIO mit ESP32 / Arduino verwendet
Problem:
Standardmäßig verwendet PlatformIO -std=gnu++11 als Compiler-Flag, aber Sie möchten C++17- oder C++23-Funktionen verwenden.
Wenn Sie einfach
platformio.ini
build_flags = -std=gnu++17verwenden, führt dies dazu, dass g++ mit g++ ... -std=gnu++17 ... -std=gnu++11 ... Compiler-Flags aufgerufen wird. Das letzte - gnu++11 bzw. C++11 hat Vorrang.
Lösung
Um C++17 zu aktivieren, verwenden Sie
platformio.ini
build_flags = -std=gnu++17
build_unflags = -std=gnu++11Um C++23 zu aktivieren (in G++ noch nicht vollständig implementiert), müssen Sie derzeit -std=gnu++2a verwenden:
platformio.ini
build_flags = -std=gnu++2a
build_unflags = -std=gnu++11Check out similar posts by category:
Arduino, ESP8266/ESP32, PlatformIO
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow