在windows 的Qt 5.14.2运行LVGL 8.3
最近搞LVGL,就想先把仿真环境搭起来。在网上看了一些文章,主要是Qt Creator 运行LVGL模拟器-CSDN博客 虽然最后搭建起来了,但走了一些弯路,所以我写一篇文章,希望可以帮助大家。
其实在windows运行LVGL模拟器有很多方法,Visual studio mysys CodeBlocks qt,正好我这有安装QT5.14.2和cmake,就记录下。用到QT的只有mingwin编译工具链,包括C C++,还有cmake kit,而lvgl使用cmake组织编译的。所以本文有前提,1、安装有qt,带有mingw编译器,32 64都可以 2、安装有cmake软件,如果没有,下个绿色版就可以了,废话不多说,下面进入正题。
1、下载源码
https://github.com/lvgl/lv_port_pc_eclipse/tree/release/v8.3
这是仿真工程,用来存放其他组件,其实就是main函数及LVGL配置,还有环境支持。里面有lv_drivers lvgl两个目录,这是两个子仓库,分别放下面两个文件夹内容。如果你可以使用git clone --recursive https://github.com/littlevgl/pc_simulator_sdl_eclipse.git的话,就不用下载下面两个,不然还是依次下载这三个ZIP文件。
https://github.com/lvgl/lvgl/tree/release/v8.3
这是lvgl主要源码,直接下下来,不用动,解压后将内容放入上面lvgl文件夹中
https://github.com/lvgl/lv_drivers/tree/release/v8.3
这是TFT 、触摸驱动,虽然没有实际硬件,但还是要接口,解压后将内容放入上面lv_drivers 文件夹中
https://github.com/libsdl-org/SDL/releases/download/release-2.28.3/SDL2-2.28.3-win32-x64.zip
由于在PC上模拟,可以用鼠标、键盘、屏幕模拟,所以还是需要鼠标键盘输入,屏幕输出。用SDL2这个跨平台库获取输入输出,这是必不可少的,将这个文件夹直接放在lv_port_pc_eclipse下,用32位下32,用64位就下64位版本。
最终效果如下
2、qt配置cmake编译套件
打开QT creator 进入工具-》选项-》-》kits->CMAKE手动添加一个cmake.exe,换成你自己路径下图所示
然后在构建套件中,为刚刚的cmake添加C/C++工具链,32位64位应该都可以,不过要与上面SDL匹配,我用的是64位,下图所示
然后ok退出,至此cmake工具链配置完成,但是,还有一个问题是必须将qt creator的路径导出到环境变量中,否则工具链识别CMakeLists.txt有问题,我就是在这儿卡了好久。可以建一个简单cmake工程试试能不能编译。
3、修改lv_port_pc_eclipse下CMakeLists.txt
主要添加SDL dll路径和SDL头文件路径,注意32 64位
4、用QT打开lv_port_pc_eclipse下CMakeLists.txt,不出意外会配置解析,结束后,直接运行但提示,缺少SDL2.dll,将SDL2_2.28.3\x86_64-w64-mingw32\bin下的SDL2.dll复制到lv_port_pc_eclipse_release_v8.3\bin下,再次点击运行或者双击lv_port_pc_eclipse_release_v8.3\bin下的main.exe即可正常运行,如图所示
还可以直接在main中调demo example例子