最后有下载移植好工程的方法:

1.安装qt,已经安装qt的略过,没有安装过qt的,教程参考如下网文:

Qt下载(多种下载通道+所有版本)

qt支持docker QT支持vglite_文件复制

2.安装好qt之后我们需要下载littlevGL的pc模拟器的源码包,下载地址如下:

GitHub - lvgl/lv_sim_eclipse_sdl: PC simulator project for LVGL embedded GUI Library. Recommended on Linux and Mac.

qt支持docker QT支持vglite_移植LittlevGL到 Qt _02

下载后我们会得到

qt支持docker QT支持vglite_移植LittlevGL到 Qt _03

这个压缩包,这个是littlevGL使用eclipse  PC模拟器移植好的软件包,我们解压我们会看到如下目录结构

qt支持docker QT支持vglite_文件复制_04

3.我们看到如果要在pc上显示出来我们,必须要显示的驱动库呀,在pc上显示模拟器我们可以使用sdl库,但是这里并没有sdl的库的文件,所以我们必须手动下载sdl的库,下载地址如下:Simple DirectMedia Layer - SDL version 2.0.18 (stable)

qt支持docker QT支持vglite_Qt_05

下载好sdl后我们解压缩,可以看到文件目录如下结构:

qt支持docker QT支持vglite_文件复制_06

注意:如果你的qt使用的MinGW 是32位的需要选择32位的sdl库,如果MinGW是64位的要选择64位的sdl库,不然链接的时候会出错,链接的时候会出现undefined reference to `SDL_CreateThread',就是sdl的库的不对,说找不到没有定义SDL_CreateThread这个函数,导致链接失败。

5.好了,万事具备,只欠东风了,严格意义来说我们并不是移植,而是在使用qt把eclipse的工程在qt上编译出来,其实对qt熟悉的朋友现在都可以自己手动编译出来了,废话不多说我们开始吧。

5.0.1我们在电脑先建立一个文件夹,我的命名为pc_littlevGL,路径为H:\pc_littlevGL,然后我们打开qt:文件->新建文件或者项目

qt支持docker QT支持vglite_Qt_07

5.0.2选择Choose…

qt支持docker QT支持vglite_qt支持docker_08

qt支持docker QT支持vglite_eclipse_09

打开如下图的littlevGL.pro文件删除SOURCES  +=  main.c,保存

qt支持docker QT支持vglite_Qt_10

打开H:\pc_littlevGL\littlevGL,我们可以看到我们的工程文件littlevGL.pro,删除里面的main.c这个我们不需要

qt支持docker QT支持vglite_文件复制_11

打开我们之前解压的pc_simulator_sdl_eclipse文件夹,按照下面图片,把对应的文件夹和.c文件复制到H:\pc_littlevGL\littlevGL

qt支持docker QT支持vglite_文件复制_12

复制之后的文件如下,(备注下面图片少复制mouse_cursor_icon.c了,把这个也复制过来)

qt支持docker QT支持vglite_qt支持docker_13

进入H:\pc_littlevGL\littlevGL\lv_drivers\display,删除fbdev.c和fbdev.h这个是和linux的显示驱动相关的,我们这里不需要,可以删除或者不把它添加到编译,我们这里选择删除。

qt支持docker QT支持vglite_文件复制_14

新建SDL2,把sdl的链接库复制过来,记住你的是MinGW 是32位的需要选择32位的sdl库,如果MinGW是64位的要选择64位的sdl库。

qt支持docker QT支持vglite_文件复制_15

因为我的是32位的把SDL2-2.0.10\i686-w64-mingw32里面的所有文件复制到H:\pc_littlevGL\littlevGL\SDL2。

qt支持docker QT支持vglite_移植LittlevGL到 Qt _16

这下我们复制完了我们所有的文件,复制完的目录如图所示。

qt支持docker QT支持vglite_qt支持docker_17

回到qt,如图在工程文件那里右键,Add Exiting Directory

qt支持docker QT支持vglite_qt支持docker_18

如图所示把我们所有的.c和.h都加进来,然后点击ok

qt支持docker QT支持vglite_eclipse_19

然后打开littlevGL.pro,添加这句话:
LIBS += -L$$PWD/SDL2/lib/ -lmingw32 -lSDL2main -lSDL2
这句话的意思是告诉编译器指定lib库的路径,$$PWD就是当前工程的路径。

qt支持docker QT支持vglite_eclipse_20

因为我们的sdl的库的头文件是SDL2/include/SDL2/SDL.h,不是SDL2/SDL.h 所以要按照如下图修改main.c和lv_drv_conf.h

qt支持docker QT支持vglite_qt支持docker_21

lv_drv_conf.h

qt支持docker QT支持vglite_移植LittlevGL到 Qt _22

点击:构建->构建项目 编程成功

错误解决:编译成功,点击调试->开始调试->开始调试,运行的时候出现如下错误

qt支持docker QT支持vglite_文件复制_23

H:\pc_littlevGL\littlevGL\SDL2\bin里面的SDL2.dll,复制到

H:\pc_littlevGL\build-littlevGL-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug。

再次运行:成功会看到如下的画面

qt支持docker QT支持vglite_移植LittlevGL到 Qt _24