Thanks for catching those little gotchas about including Arduino.h when not supposed to and the ctime include. I guess IDEs aren’t perfect, because mine never hinted that anything was wrong.
Unfortunately, I have the same issue when running the PlatformIO Upload in the IDE, but now if I run it on the command line it gives me a different error about SDL2/SDL.h not being found.
I added the -I
and -L
for where my local SDL is located, but then I start going down a rabbit hole of having to add includes for every file in the SDL library that PlatformIO cannot find. I thought PlatformIO was supposed to manage my dependencies for me? Is there an OS environment that PlatformIO imports?
I forgot to mention it before, but I’m on MacOS Catalina. I have SDL2 installed via homebrew in my /usr/local/include
and /usr/local/lib
, respectively.
IDE PlatformIO Upload Task:
Processing native (platform: native@^1.1.3)
--------------------------------------------------------------------------------
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 2 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <lvgl> 7.10.0 (/Users/kstanl27/Development/dbuddy/.pio/libdeps/native/lvgl)
|-- <lv_drivers> 7.9.1 (/Users/kstanl27/Development/dbuddy/.pio/libdeps/native/lv_drivers)
| |-- <lvgl> 7.10.0 (/Users/kstanl27/Development/dbuddy/.pio/libdeps/native/lvgl)
Building in release mode
g++ -o .pio/build/native/src/dbuddy.o -c -DPLATFORMIO=50100 -DLV_CONF_INCLUDE_SIMPLE -DLV_LVGL_H_INCLUDE_SIMPLE -DLV_DRV_NO_CONF -DUSE_MONITOR -DMONITOR_ZOOM=2 -DUSE_MOUSE -DUSE_MOUSEWHEEL -DUSE_KEYBOARD -Isrc -I.pio/libdeps/native/lv_drivers -I.pio/libdeps/native/lvgl -I.pio/libdeps/native/lvgl/src -I. -Iinclude src/dbuddy.cpp
g++ -o .pio/build/native/src/fonts.o -c -DPLATFORMIO=50100 -DLV_CONF_INCLUDE_SIMPLE -DLV_LVGL_H_INCLUDE_SIMPLE -DLV_DRV_NO_CONF -DUSE_MONITOR -DMONITOR_ZOOM=2 -DUSE_MOUSE -DUSE_MOUSEWHEEL -DUSE_KEYBOARD -Isrc -I.pio/libdeps/native/lv_drivers -I.pio/libdeps/native/lvgl -I.pio/libdeps/native/lvgl/src -I. -Iinclude src/fonts.cpp
g++ -o .pio/build/native/src/hal.o -c -DPLATFORMIO=50100 -DLV_CONF_INCLUDE_SIMPLE -DLV_LVGL_H_INCLUDE_SIMPLE -DLV_DRV_NO_CONF -DUSE_MONITOR -DMONITOR_ZOOM=2 -DUSE_MOUSE -DUSE_MOUSEWHEEL -DUSE_KEYBOARD -Isrc -I.pio/libdeps/native/lv_drivers -I.pio/libdeps/native/lvgl -I.pio/libdeps/native/lvgl/src -I. -Iinclude src/hal.cpp
g++ -o .pio/build/native/src/main.o -c -DPLATFORMIO=50100 -DLV_CONF_INCLUDE_SIMPLE -DLV_LVGL_H_INCLUDE_SIMPLE -DLV_DRV_NO_CONF -DUSE_MONITOR -DMONITOR_ZOOM=2 -DUSE_MOUSE -DUSE_MOUSEWHEEL -DUSE_KEYBOARD -Isrc -I.pio/libdeps/native/lv_drivers -I.pio/libdeps/native/lvgl -I.pio/libdeps/native/lvgl/src -I. -Iinclude src/main.cpp
In file included from src/dbuddy.cpp:5:
In file included from include/dbuddy.h:4:
In file included from include/ui.h:6:
include/widget.h:42:20: error: function definition does not declare parameters
lv_obj_t * self{};
^
include/widget.h:25:20: error: use of undeclared identifier 'self'
delete self;
^
include/widget.h:38:40: error: use of undeclared identifier 'self'
lv_obj_t * get_self() { return self; }
^
include/widget.h:39:39: error: use of undeclared identifier 'self'
void set_self(lv_obj_t * s) { self = s; }
^
In file included from src/dbuddy.cpp:5:
In file included from include/dbuddy.h:4:
In file included from include/ui.h:7:
include/fonts.h:11:31: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
Fonts(Fonts &other) = delete;
^
include/fonts.h:12:41: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
void operator=(const Fonts &) = delete;
^
include/fonts.h:20:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * black_medium{};
^
include/fonts.h:21:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * black_small{};
^
include/fonts.h:22:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * black_xxlarge{};
^
include/fonts.h:23:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * regular_small{};
^
include/fonts.h:24:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * regular_xsmall{};
^
In file included from src/dbuddy.cpp:5:
In file included from include/dbuddy.h:4:
In file included from include/ui.h:8:
include/styles.h:16:33: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
Styles(Styles &other) = delete;
^
include/styles.h:17:42: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
void operator=(const Styles &) = delete;
^
include/styles.h:59:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_blend_mode_additive{};
^
include/styles.h:60:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_blend_mode_subtractive{};
^
include/styles.h:61:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_black{};
^
include/styles.h:62:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_blue{};
^
include/styles.h:63:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_none{};
^
include/styles.h:64:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_purple{};
^
include/styles.h:65:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_white{};
^
include/styles.h:66:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_overlay{};
^
include/styles.h:67:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_transparent_10{};
^
include/styles.h:68:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_transparent_20{};
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
4 warnings and 20 errors generated.
*** [.pio/build/native/src/dbuddy.o] Error 1
In file included from src/fonts.cpp:1:
include/fonts.h:11:31: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
Fonts(Fonts &other) = delete;
^
include/fonts.h:12:41: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
void operator=(const Fonts &) = delete;
^
include/fonts.h:20:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * black_medium{};
^
include/fonts.h:21:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * black_small{};
^
include/fonts.h:22:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * black_xxlarge{};
^
include/fonts.h:23:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * regular_small{};
^
include/fonts.h:24:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * regular_xsmall{};
^
src/fonts.cpp:8:5: error: use of undeclared identifier 'black_medium'
black_medium = new std::map<lv_state_t, lv_style_t *>();
^
src/fonts.cpp:9:5: error: use of undeclared identifier 'black_small'
black_small = new std::map<lv_state_t, lv_style_t *>();
^
src/fonts.cpp:10:5: error: use of undeclared identifier 'black_xxlarge'
black_xxlarge = new std::map<lv_state_t, lv_style_t *>();
^
src/fonts.cpp:11:5: error: use of undeclared identifier 'regular_small'
regular_small = new std::map<lv_state_t, lv_style_t *>();
^
src/fonts.cpp:12:5: error: use of undeclared identifier 'regular_xsmall'
regular_xsmall = new std::map<lv_state_t, lv_style_t *>();
^
src/fonts.cpp:14:30: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
for (unsigned char STATE : STATES) {
^
src/fonts.cpp:15:19: error: use of undeclared identifier 'black_medium'
init_font(black_medium, STATE);
^
src/fonts.cpp:16:32: error: use of undeclared identifier 'black_medium'
lv_style_set_text_font(black_medium->at(STATE), STATE, &roboto_black_24);
^
src/fonts.cpp:18:19: error: use of undeclared identifier 'black_small'
init_font(black_small, STATE);
^
src/fonts.cpp:19:32: error: use of undeclared identifier 'black_small'
lv_style_set_text_font(black_small->at(STATE), STATE, &roboto_black_16);
^
src/fonts.cpp:21:19: error: use of undeclared identifier 'black_xxlarge'
init_font(black_xxlarge, STATE);
^
src/fonts.cpp:22:32: error: use of undeclared identifier 'black_xxlarge'
lv_style_set_text_font(black_xxlarge->at(STATE), STATE, &roboto_black_72);
^
src/fonts.cpp:24:19: error: use of undeclared identifier 'regular_xsmall'
init_font(regular_xsmall, STATE);
^
src/fonts.cpp:25:32: error: use of undeclared identifier 'regular_xsmall'
lv_style_set_text_font(regular_xsmall->at(STATE), STATE, &roboto_regular_14);
^
src/fonts.cpp:27:19: error: use of undeclared identifier 'regular_small'
init_font(regular_small, STATE);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
3 warnings and 20 errors generated.
*** [.pio/build/native/src/fonts.o] Error 1
In file included from src/hal.cpp:3:
include/hal.h:20:40: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
lv_disp_buf_t * display_buffer = new lv_disp_buf_t;
^
include/hal.h:21:40: warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
lv_disp_drv_t * display_driver = new lv_disp_drv_t;
^
include/hal.h:23:22: error: function definition does not declare parameters
lv_color_t * buffer0[BUFFER_SIZE]{};
^
include/hal.h:24:22: error: function definition does not declare parameters
lv_color_t * buffer1[BUFFER_SIZE]{};
^
src/hal.cpp:18:42: error: use of undeclared identifier 'buffer0'
lv_disp_buf_init(display_buffer, buffer0, buffer1, BUFFER_SIZE);
^
src/hal.cpp:18:51: error: use of undeclared identifier 'buffer1'
lv_disp_buf_init(display_buffer, buffer0, buffer1, BUFFER_SIZE);
^
src/hal.cpp:20:42: error: use of undeclared identifier 'buffer0'
lv_disp_buf_init(display_buffer, buffer0, nullptr, BUFFER_SIZE);
^
2 warnings and 5 errors generated.
*** [.pio/build/native/src/hal.o] Error 1
In file included from src/main.cpp:3:
In file included from include/dbuddy.h:4:
In file included from include/ui.h:6:
include/widget.h:42:20: error: function definition does not declare parameters
lv_obj_t * self{};
^
include/widget.h:25:20: error: use of undeclared identifier 'self'
delete self;
^
include/widget.h:38:40: error: use of undeclared identifier 'self'
lv_obj_t * get_self() { return self; }
^
include/widget.h:39:39: error: use of undeclared identifier 'self'
void set_self(lv_obj_t * s) { self = s; }
^
In file included from src/main.cpp:3:
In file included from include/dbuddy.h:4:
In file included from include/ui.h:7:
include/fonts.h:11:31: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
Fonts(Fonts &other) = delete;
^
include/fonts.h:12:41: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
void operator=(const Fonts &) = delete;
^
include/fonts.h:20:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * black_medium{};
^
include/fonts.h:21:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * black_small{};
^
include/fonts.h:22:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * black_xxlarge{};
^
include/fonts.h:23:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * regular_small{};
^
include/fonts.h:24:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * regular_xsmall{};
^
In file included from src/main.cpp:3:
In file included from include/dbuddy.h:4:
In file included from include/ui.h:8:
include/styles.h:16:33: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
Styles(Styles &other) = delete;
^
include/styles.h:17:42: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
void operator=(const Styles &) = delete;
^
include/styles.h:59:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_blend_mode_additive{};
^
include/styles.h:60:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_blend_mode_subtractive{};
^
include/styles.h:61:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_black{};
^
include/styles.h:62:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_blue{};
^
include/styles.h:63:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_none{};
^
include/styles.h:64:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_purple{};
^
include/styles.h:65:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_color_white{};
^
include/styles.h:66:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_overlay{};
^
include/styles.h:67:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_transparent_10{};
^
include/styles.h:68:46: error: function definition does not declare parameters
std::map<lv_state_t, lv_style_t *> * background_transparent_20{};
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
4 warnings and 20 errors generated.
*** [.pio/build/native/src/main.o] Error 1
========================== [FAILED] Took 8.99 seconds ==========================
Environment Status Duration
------------- -------- ------------
native FAILED 00:00:08.994
==================== 1 failed, 0 succeeded in 00:00:08.994 ====================
make[3]: *** [CMakeFiles/Production] Error 1
make[2]: *** [CMakeFiles/Production.dir/all] Error 2
make[1]: *** [CMakeFiles/Production.dir/rule] Error 2
make: *** [Production] Error 2
Compiler version:
13:40 $ g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.28)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin