One,Problem introduction
use nxp GUI-guider generated C lvgl code,pio have some cpp code。
1/6,project tree
├─.pio (no show,because too long)
├─.vscode
├─include
├─lib
│ └─BLTGUI
│ ├─custom
│ └─generated
│ ├─guider_customer_fonts
│ ├─guider_fonts
│ └─images
└─src
2/6,project pic
3/6,library.json
{
"name": "BLTGUI",
"keywords": "bltgui",
"description": "bltgui des",
"version": "1.0",
"authors": {
"name": "bobo21"
},
"frameworks": "arduino",
"platforms": "espressif32",
"build" : {
"unflags": "-std=gnu++11",
"flags": [
"-I custom",
"-I generated",
"-I generated/guider_customer_fonts",
"-I generated/guider_fonts",
"-I generated/images"
],
"srcFilter": [
"+<*.c>",
"+<*.h>",
"custom/*.cpp",
"generated/*.cpp",
"generated/guider_customer_fonts/*.cpp",
"generated/guider_fonts/*.cpp",
"generated/images/*.cpp"
]
}
}
4/6,platformio.ini
[env:esp32dev]
platform = espressif32
board = esp32dev
monitor_speed = 115200
framework = arduino
lib_deps =
bblanchon/ArduinoJson@^6.18.5
sstaub/Ethernet3@^1.5.5
bodmer/TFT_eSPI@^2.4.25
lvgl/lv_arduino@^3.0.1
5/6,main.cpp
#include "arduino.h"
#include <stdlib.h>
#include "lvgl.h"
#include <TFT_eSPI.h>
#include <generated/gui_guider.h>
#include <generated/events_init.h>
#include <custom/custom.h>
lv_ui guider_ui;
void setup()
{
lv_init();
setup_ui(&guider_ui);
// events_init(&guider_ui);
// custom_init(&guider_ui);
}
void loop()
{
lv_task_handler();
delay(5);
}
6/6,build error
undefined reference to xxx
Linking .pio\build\esp32dev\firmware.elf
.pio\build\esp32dev\src\main.cpp.o:(.literal._Z5setupv+0x4): undefined reference to `setup_ui'
.pio\build\esp32dev\src\main.cpp.o: In function `setup()':
D:\EVERYDAY\WorkDay\220607_BLT\0608mega/src/main.cpp:26: undefined reference to `setup_ui'
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp32dev\firmware.elf] Error 1
Two
The library files are all C language files, and the main file is a CPP file.
The header files in the library file are all added with extern C