When you are using PlatformIO to compile your firmware, it is easily possible to use a C++ main.cpp
instead of the pure C main.c
by just renaming main.c
to main.cpp
However, you also need to properly declary app_main()
. After the #include
section of your main.cpp
(or at the top of the file if you don’t have an #include
section yet), add this code:
extern "C" { void app_main(void); }
This will tell the compiler that app_main()
is a C
function, not a C++
function.
Full main.cpp
example
#include <cstdio> #include <freertos/FreeRTOS.h> #include <freertos/task.h> extern "C" { void app_main(void); } void app_main() { while(true) { printf("Hello PlatformIO!\n"); // Wait for one second vTaskDelay(1000 / portTICK_PERIOD_MS); } }