При использовании PlatformIO для компиляции прошивки легко возможно использовать C++ main.cpp вместо чистого C main.c, просто переименовав main.c в main.cpp
Однако вам также нужно правильно объявить app_main(). После секции #include в вашем main.cpp (или в начале файла, если у вас ещё нет секции #include), добавьте этот код:
app_main_declare.cpp
extern "C" {
void app_main(void);
}Это скажет компилятору, что app_main() — это функция C, а не функция C++.
Полный пример main.cpp
espidf_main_cpp_example.cpp
#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);
}
}
Check out similar posts by category:
C/C++ 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