目录
此篇完成后的工程文件:LittleVGL CodeBlocks模拟器编译成功的库和工程包
一、简介
1、LittleVGL 所支持的 IDE 软件种类:
此次使用CodeBlocks
,安装使用比较简单。
2、需要的工具:
软件和版本 | 文件名 | 下载 |
---|---|---|
CodeBlocks 17.12 | codeblocks-17.12mingw-setup.exe | http://www.codeblocks.org/downloads/26 |
SDL2 | SDL2-devel-2.0.10-mingw.tar.gz | http://www.libsdl.org/download-2.0.php |
LittleVGL 模拟器库 | lv_pc_simulator.zip | https://github.com/littlevgl/pc_simulator |
CSDN打包下载:LittleVGL PC模拟器环境包(CodeBlocks)
二、安装配置软件和环境
1、littleVGL 模拟器库
- 解压
lv_pc_simulator.zip
,生成lv_pc_simulator
目录。 - 解压目录下的
lv_drivers.zip
,lv_examples.zip
,lvgl.zip
三个文件 - 目录下新建
codeblocks
子目录,用来存放 CodeBlock 项目工程文件
目录结构:
2、安装CodeBlocks
- 双击安装
codeblocks-17.12mingw-setup.exe
,全部Next
就可以了。 - 安装完后弹出:
三、创建工程项目
File->New->Project...
GO
Next
Next
- 项目名:
littleVGL
- 存放路径:
lv_pc_simulator/codeblocks
目录下。 Next
Finish
四、配置SDL2
- 解压
SDL2-devel-2.0.10-mingw.tar.gz
- 把
SDL2-2.0.10\i686-w64-mingw32\include
目录下的 SDL2 目录拷贝到CodeBlock
的安装目录CodeBlocks\MinGW\include
下 - 把
SDL2-2.0.10\i686-w64-mingw32\lib
下的 7 个.a
或者.la
库文件拷贝到CodeBlock
的安装目录CodeBlocks\MinGW\lib
下
五、添加项目文件
1、删除默认创建的文件
- 右键
main.c
文件,点击Remove file from project
删除 - 在
lv_pc_simulator\codeblocks\littleVGL
目录下把main.c
文件完全删除。
2、添加库文件
工程上右键——Add files recursively
——选择 lv_pc_simulator
顶层目录
默认OK
默认OK
完成后的目录结构:
3、添加运行文件
SDL2-2.0.10\i686-w64-mingw32\bin
目录下的 SDL2.dll
文件拷贝到lv_pc_simulator\codeblocks\littleVGL\bin\Debug
目录下面。
六、配置项目工程
右键工程图标,点击Build options
,打开对话框之后,在 Other linker options
下输入 -lmingw32 -lSDL2main -lSDL2
Search directories
添加头文件搜索路径:
使用相对路径:
七、修改和编译
1、修改文件
(1)以下为4个演示例程,任意去掉一行的注释即可:
benchmark_create();
lv_test_theme_1(lv_theme_night_init(15, NULL));
lv_test_theme_2();
lv_test_group_1();
(2)修改lv_pc_simulator\lv_drv_conf.h
头文件,宏定义改为 0
:
/*-----------------------------------------
* Linux frame buffer device (/dev/fbx)
*-----------------------------------------*/
#ifndef USE_FBDEV
# define USE_FBDEV 0
#endif
2、编译:
点击以下图标:
如果报错,参照第七点的问题解决
。
3、运行:
八、问题解决:
问题一:
||=== Build: Debug in littleVGL (compiler: GNU GCC Compiler) ===|
E:\Documents\lv_pc_simulator\lv_drivers\display\fbdev.c|17|fatal error: linux/fb.h: No such file or directory|
解决:
修改lv_pc_simulator\lv_drv_conf.h
头文件,宏定义改为 0
:
/*-----------------------------------------
* Linux frame buffer device (/dev/fbx)
*-----------------------------------------*/
#ifndef USE_FBDEV
# define USE_FBDEV 0
#endif
问题二:
||=== Build: Debug in littleVGL (compiler: GNU GCC Compiler) ===|
obj\Debug\codeblocks\littleVGL\main.o||In function `main':|
E:\Documents\lv_pc_simulator\codeblocks\littleVGL\main.c|5|multiple definition of `main'|
obj\Debug\main.o:E:\Documents\lv_pc_simulator\main.c|60|first defined here|
||error: ld returned 1 exit status|
解决:
**删除lv_pc_simulator\codeblocks\littleVGL\main.c
问题三:
||=== Build: Debug in littleVGL (compiler: GNU GCC Compiler) ===|
||WARNING: Can't read file's timestamp: E:\Documents\lv_pc_simulator\codeblocks\littleVGL\main.c|
E:\Documents\lv_pc_simulator\main.c||In function 'memory_monitor':|
E:\Documents\lv_pc_simulator\main.c|208|warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]|
E:\Documents\lv_pc_simulator\main.c|208|warning: incompatible implicit declaration of built-in function 'printf'|
E:\Documents\lv_pc_simulator\main.c|208|note: include '<stdio.h>' or provide a declaration of 'printf'|
obj\Debug\codeblocks\littleVGL\main.o||No such file or directory|
||=== Build failed: 1 error(s), 3 warning(s) (0 minute(s), 8 second(s)) ===|
解决:
头文件自己添加个#include <stdio.h>
问题四:
||=== Build: Debug in littleVGL (compiler: GNU GCC Compiler) ===|
||WARNING: Can't read file's timestamp: E:\Documents\lv_pc_simulator\codeblocks\littleVGL\main.c|
obj\Debug\codeblocks\littleVGL\main.o||No such file or directory|
||=== Build failed: 1 error(s), 1 warning(s) (0 minute(s), 8 second(s)) ===|
在没有删除lv_pc_simulator\codeblocks\littleVGL\main.c
前就先添加了文件导致的。
解决:
littleVGL工程上右键——Properties...
——Build targets
——去掉main.c
的勾选。
问题五:
由于找不到SDL2.dll
,无法继续执行代码,重新安装程序可能会解决此问题。
SDL2-2.0.10\i686-w64-mingw32\bin
目录下的 SDL2.dll
文件拷贝到lv_pc_simulator\codeblocks\littleVGL\bin\Debug
目录下面。
参考:
正点原子《手把手教你学littleVGL》4.PC模拟器的使用。