参考链接1: 给大家介绍一个非常不错的GUI ---- littlevgl
本来打算用MSVC2015来编译LittleVGL的,
但是后来发现LittleVGL用了大量C99特性,
而辣鸡的MSVC各个版本对C99都支持不好,
所以我们只能用windows下的gcc ---- mingw了
1. 下载i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z,
清华大学镜像站点: i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z,
北京理工大学站点: i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z
其它站点: i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z.mirrorlist
其它所有预编译mingw32: prebuilt/mingw_32/
解压i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z
2. 进入SDL2.0下载页面, 下载mingw预编译版本文件SDL2-devel-2.0.7-mingw.tar.gz
拷贝 SDL2-2.0.7\i686-w64-mingw32 所有内容到 mingw32\i686-w64-mingw32
3. 根据你的电脑配置选择64bit/32bit版本QtCreator编译调试软件:
下载QtCreator 64bit 最新版本 qt-creator-opensource-windows-x86_64-4.5.0.exe
下载QtCreator 32bit 最新版本 qt-creator-opensource-windows-x86-4.5.0.exe
其它QtCreator版本: official_releases/qtcreator/
下载后安装.
4. 配置QtCreator mingw编译环境.
5. git下载littlevgl 模拟器源码,并更新littlevgl core、driver、examples
git clone https://github.com/littlevgl/pc_simulator.git
cd pc_simulator
git submodule update --init
6. 打开工程,编译。
以下是重要更新:
2018-08-11:
-------------------------------------------
第1, 3步可以合并: 下载并安装 qt-opensource-windows-x86-5.9.6.exe, 选择 MinGW 5.3.0 32bit 即可!
离线
4. 配置QtCreator mingw编译环境.
1) 设置编译工具链:
打开 【工具】->【选项】->【构建和运行】-> 【编译器】-> 【添加】->【MINGW】->【C】
打开 【工具】->【选项】->【构建和运行】-> 【编译器】-> 【添加】->【MINGW】->【C++】
2) 设置调试工具:
打开 【工具】->【选项】->【构建和运行】-> 【Debuggers】
3) 设置构建套件(Kit)
打开 【工具】->【选项】->【构建和运行】-> 【构建套件(Kit)】
离线
1. 修改Makefile, 删除clean:
## MAINOBJ -> OBJFILES
all: clean default
%.o: %.c
@$(CC) $(CFLAGS) -c $< -o $@
@echo "CC $<"
default: $(AOBJS) $(COBJS) $(MAINOBJ)
$(CC) -o $(BIN) $(MAINOBJ) $(AOBJS) $(COBJS) $(LDFLAGS)clean:
rm -f $(BIN) $(AOBJS) $(COBJS) $(MAINOBJ)
2. 修改Makefile:
CFLAGS += -O3 -g3 -I./
LDFLAGS += -lSDL2 -lm
改为
CFLAGS += -O3 -g3 -I./ -ID:/Downloads/pc_simulator/
LDFLAGS += -lSDL2 -lm -lmingw32 -lSDL2main -lSDL2 -mwindows
3.修改main.c:
int main (void)
==>
int main (int argc, char* argv[])
离线
CC lvgl/lv_misc/lv_ll.c
CC lvgl/lv_misc/lv_color.c
CC lvgl/lv_misc/lv_txt.c
CC lvgl/lv_misc/lv_ufs.c
CC lvgl/lv_misc/lv_trigo.c
CC lvgl/lv_themes/lv_theme_alien.c
CC lvgl/lv_themes/lv_theme.c
CC lvgl/lv_themes/lv_theme_default.c
CC lvgl/lv_themes/lv_theme_night.c
CC lvgl/lv_themes/lv_theme_templ.c
CC lvgl/lv_themes/lv_theme_zen.c
CC lvgl/lv_themes/lv_theme_material.c
CC lvgl/lv_draw/lv_draw_vbasic.c
CC lvgl/lv_draw/lv_draw.c
CC lvgl/lv_draw/lv_draw_rbasic.c
In file included from lv_drivers/display/fbdev.c:9:0:
lv_drivers/display/fbdev.h:16:25: fatal error: lv_drv_conf.h: No such file or directory
#include "lv_drv_conf.h"
^
compilation terminated.
Makefile:87: recipe for target 'fbdev.o' failed
mingw32-make: *** [fbdev.o] Error 1
10:14:40: 进程"D:\Downloads\mingw32\bin\mingw32-make.exe"退出,退出代码 2 。
Error while building/deploying project pc_simulator (kit: MINGW4.8.2)
The kit MINGW4.8.2 has configuration issues which might be the root cause for this problem.
When executing step "Make"
10:14:41: Elapsed time: 06:06.
如果不修改Makefile和main.c, 编译或链接会出错,解决方案在3楼。
离线
楼主你好,在编译过程中报一堆的找不到该目录,是为什么呀:
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
CC lv_drivers/indev/XPT2046.c
离线
楼主你好,在编译过程中报一堆的找不到该目录,是为什么呀:
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
CC lv_drivers/indev/XPT2046.c
你把mingw 或者 littlevgl代码放在 "E:\Program Files" 下面吗?
可能是有空格的路径导致的!
离线
601714078 说:楼主你好,在编译过程中报一堆的找不到该目录,是为什么呀:
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
CC lv_drivers/indev/XPT2046.c你把mingw 或者 littlevgl代码放在 "E:\Program Files" 下面吗?
可能是有空格的路径导致的!
看了下两个都不是哦:
我的littlevgl工程放在了:F:\WorkData\pc_simulator
我的编译器放在了:E:\mingw\bin
也搞不懂为什么会报上面这个错误,
离线
这个是构建项目时打印出来的信息,可以看到编译器是在对的路径下:
13:44:27: 为项目pc_simulator执行步骤 ...
13:44:27: 正在启动 "E:\mingw\bin\mingw32-make.exe" all
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
sh: E:\Program: No such file or directory
离线
那很神奇哦,你电脑应该有 "E:\Program Files" 这个目录吧?
放狗搜了一下,看起来应该是查找make.exe 到了 "E:\Program Files"去了。
This might be a bug in the particular make.exe that we're using from Make for Windows - GnuWin32.
离线
那很神奇哦,你电脑应该有 "E:\Program Files" 这个目录吧?
放狗搜了一下,看起来应该是查找make.exe 到了 "E:\Program Files"去了。
This might be a bug in the particular make.exe that we're using from Make for Windows - GnuWin32.
在电脑搜索了下make.exe文件,都是在E:\mingw\bin目录下,另外论坛是怎么贴图的
离线
如果是上面的问题造成的,解决办法在此 how-to-make-exe-file-in-qt-creator
The executable is generated by the compiler when you build your application. To know where the executable is stored, look into
Projects (CTRL+5) -> Build settings -> General -> Build directory
This is where Qt creator will put the .exe it generates if you have shadow build enabled. If shadow build is disabled, the executable will be stored inside the project folder itself.
离线
第一次的编译速度实在是折磨人啊,太慢了,嘿嘿
终究是编译成功了,可喜可贺,感谢楼主大大
运行的时候提示出错,说找不到sdl2.dll
把i686-w64-mingw32/bin文件夹下的SDL2.dll拷贝到最外层的bin文件夹里发现成功运行了
离线
第一次的编译速度实在是折磨人啊,太慢了,嘿嘿
终究是编译成功了,可喜可贺,感谢楼主大大
运行的时候提示出错,说找不到sdl2.dll
把i686-w64-mingw32/bin文件夹下的SDL2.dll拷贝到最外层的bin文件夹里发现成功运行了
哈,恭喜入坑。
把 sdl2.dll 所在的目录添加到PATH也是可以的。
离线
换个有颜色的,工程里面的例程比较详细
最近编辑记录 qwert1213131 (2018-01-24 15:51:48)
离线
https://whycan.cn/files/members/418/TIM20180124154945.png
换个有颜色的,工程里面的例程比较详细
怎么做到的?
能不能用汉字?
求汉字demo
离线
qwert1213131 说:https://whycan.cn/files/members/418/TIM20180124154945.png
换个有颜色的,工程里面的例程比较详细怎么做到的?
能不能用汉字?
求汉字demo
汉字目前还不是很清楚如何解决
估计在下个版本会得到支持吧
lv_obj_t * label3 = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label3, "hello dump#ff0000 debug#");
lv_label_set_recolor(label3, true);
lv_obj_align(label3, lv_scr_act(), LV_ALIGN_CENTER 0, 0);
离线
bugfix 说:qwert1213131 说:https://whycan.cn/files/members/418/TIM20180124154945.png
换个有颜色的,工程里面的例程比较详细怎么做到的?
能不能用汉字?
求汉字demo汉字目前还不是很清楚如何解决
估计在下个版本会得到支持吧lv_obj_t * label3 = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label3, "hello dump#ff0000 debug#");
lv_label_set_recolor(label3, true);
lv_obj_align(label3, lv_scr_act(), LV_ALIGN_CENTER 0, 0);
这个不错,显示不同颜色字符方便了。
离线
qwert1213131 说:bugfix 说:怎么做到的?
能不能用汉字?
求汉字demo汉字目前还不是很清楚如何解决
估计在下个版本会得到支持吧lv_obj_t * label3 = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label3, "hello dump#ff0000 debug#");
lv_label_set_recolor(label3, true);
lv_obj_align(label3, lv_scr_act(), LV_ALIGN_CENTER 0, 0);这个不错,显示不同颜色字符方便了。
汉字部分可以看这个地方
https://github.com/littlevgl/lvgl/issues/78
离线
楼上这个汉字不错,要好好学习!
离线
试了一下挺好,linux下主题,挺好用。
在win10下原demo运行正常,主题的demo编译不能通过。
重装了win7,qt,原demo也编译不过了。
一堆错误:
process_begin: CreateProcess(NULL, pwd, ...) failed.
mingw32-make: Makefile:88: pipe: No such file or directory
process_begin: CreateProcess(NULL, pwd, ...) failed.
mingw32-make: Makefile:88: pipe: No such file or directory
...
...
可能是什么原因呢?
离线
其他demo如何呢?
离线
从错误提示来看,好像少了 pipe.exe,明天看下我的电脑是不是有这个文件。
离线
装了官方的mingw,添加msys路径正常了。
离线
qt会检测到后装的mingw,用这个编译会有一个警告,但是也能运行。
main.c: In function 'SDL_main':
main.c:59:9: warning: 'usleep' is deprecated [-Wdeprecated-declarations]
usleep(1000); /*Just to let the system breath*/
^~~~~~
In file included from main.c:11:0:
c:\mingw\include\unistd.h:104:5: note: declared here
int usleep( useconds_t period ){ return __mingw_sleep( 0, 1000 * period ); }
^~~~~~
离线
这个警告看起来是 C代码的 #warning 抛出来的,
估计意图是尽量不要用,
后面的版本可能会删除这个函数,
不过现在你可以先忽略。
离线
试了下eclipse win-builds 和 msys2
eclipse 用和qt同样的gcc编译器,同样的源码和makefile,链接出错。感觉感觉要比qt编译的快。
Building target: lv_dev_5
Invoking: Cross GCC Linker
i686-w64-mingw32-gcc -o "lv_dev_5" ./lvgl/lv_themes/lv_theme.o ./lvgl/lv_themes/lv_theme_alien.o
......
./lv_drivers/indev/keyboard.o ./lv_drivers/indev/mouse.o ./lv_drivers/display/R61581.o ./lv_drivers/display/SSD1963.o ./lv_drivers/display/ST7565.o ./lv_drivers/display/fbdev.o ./lv_drivers/display/monitor.o ./main.o -lSDL2main -lSDL2
e:/mingw32/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x39): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
makefile:81: recipe for target 'lv_dev_5' failed
make: *** [lv_dev_5] Error 1
win-builds 集成的东西要多一些。
http://win-builds.org/doku.php
sdl版本是2.0.3 它自带的gcc
编译有一个警告。
CC lv_examples/lv_tutorial/3_styles/lv_tutorial_styles.c
CC lv_examples/lv_tutorial/4_themes/lv_tutorial_themes.c
CC lv_examples/lv_tutorial/5_antialiasing/lv_tutorial_antialiasing.c
lv_examples/lv_tutorial/6_images/lv_tutorial_images.c: In function 'pcfs_open':
lv_examples/lv_tutorial/6_images/lv_tutorial_images.c:170:8: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
if((long int)f <= 0) return LV_FS_RES_UNKNOWN;
^
CC lv_examples/lv_tutorial/6_images/lv_tutorial_images.c
CC lv_examples/lv_tutorial/6_images/img_red_flower.c
CC lv_examples/lv_tutorial/7_fonts/lv_tutorial_fonts.c
运行出错。
Starting F:\Other\pc_simulator\demo.exe...
Fatal Error: Out of memory - aborting
F:/Other/pc_simulator/demo.exe exited with code 0
msys2链接也出错
v_tutorial_objects.o lv_tutorial_styles.o lv_tutorial_themes.o lv_tutorial_antialiasing.o lv_tutorial_images.o img_red_flower.o lv_tutorial_fonts.o ubuntu_40_ascii.o ubuntu_40_cyrillic.o lv_tutorial_animations.o lv_tutorial_responsive.o -lSDL2 -lm -L/mingw64/lib/ -lSDL2main -lSDL2 -mwindows
/usr/lib/../lib/libmsys-2.0.a(libcmain.o):在函数‘main’中:
/msys_scripts/msys2-runtime/src/msys2-runtime/winsup/cygwin/lib/libcmain.c:37:对‘WinMain’未定义的引用
/msys_scripts/msys2-runtime/src/msys2-runtime/winsup/cygwin/lib/libcmain.c:37:(.text.startup+0x94): 截断重寻址至相符: R_X86_64_PC32 针对未定义的符号 WinMain
collect2: 错误:ld 返回 1
make: *** [Makefile:95:default] 错误 1
离线
我这老是提示找不到lv_ex_conf.h。
离线
我刚刚在我电脑上也没有搜到 lv_ex_conf.h
然后谷歌搜了一下,貌似把 lv_conf.h 改成了 lv_ex_conf.h
https://github.com/littlevgl/lv_examples/blob/master/README.md
Add the examples to your projects
Clone this repositry: git clone https://github.com/littlevgl/lv_examples.git or download from the Download page. To always use the newst version the cloning is recommended.
The lv_examples directory should be next to the lvgl directory in your project.
Similary to lv_conf.h there is a configuration file for the examples too. It is called lv_ex_conf.h.Copy lv_examples/lv_ex-conf_templ.h next to lv_examples directory
Rename is to lv_ex_conf.h
Delete the first #if and last #endif to enable the file's content
Enable or Disable modules
离线
:-1: error: Makefile:87: pipe: No such file or directory请问这种错误怎么搞定?
离线
发现git下来的代码好像编辑器会引起预编译问题
离线
发现git下来的代码好像编辑器会引起预编译问题
你可以直接在mingw的shell执行make,
应该不会有问题的。
离线
yue3004 说:发现git下来的代码好像编辑器会引起预编译问题
你可以直接在mingw的shell执行make,
应该不会有问题的。
请问win7下怎么用mingw的shell啊?
离线
一般单独下载的mingw不带shell(比如msys2),
不过你可以单独下载 MSYS2安装程序
MSYS2是Windows的软件发行版和构建平台
其核心是基于现代Cygwin(POSIX兼容层)和MinGW-w64的独立重写MSYS,旨在与本地Windows软件更好地互操作。它提供了一个bash shell,Autotools,修订控制系统等,用于使用MinGW-w64工具链构建本地Windows应用程序。它具有包装管理系统,可以轻松安装包装袋,Pacman。它带来了许多强大的功能,如依赖解决方案和简单的完整系统升级,以及简单的软件包构建。
安装限制:
MSYS2不能安装在FAT *分区上。
当前的MSYS2不能再安装在Windows XP上。...
仔细看说明哦
离线
eclipse msys2下都可以了,eclipse 要把设置库和包含路径等,不知为什么原来的makefile没有起作用。 msys2要装i386对应的工具(gcc,sdl2),然后到工程目录下执行make即可。
msys2编译整个工程要2分钟,即使加上-j4选项也要1分钟40秒。 之前qtcreator也要2分钟。eclipse 编译整个工程只需30秒,不知怎么做到的。
win-builds 版本比较旧,sdl2的版本是2.0.3没有折腾了。
离线
这个问题我也发现了,在Linux下执行make速度非常快,
但是用msys速度要慢好几倍,
QtCreator也是调用mingw-make,
速度一样的。
eclipse是不是用了自己的make命令?
离线
这个问题我也发现了,在Linux下执行make速度非常快,
但是用msys速度要慢好几倍,
QtCreator也是调用mingw-make,
速度一样的。eclipse是不是用了自己的make命令?
eclipse并没有使用工程内的makefile文件,他会建立一个debug文件夹,自己生产makefile,编译输出的文件在这个文件夹里。没有深入研究。
离线
哇 感谢分享 之前照官网想装eclipse的 但是mingw一直没下下来 第一次弄也不是太熟悉 还有想问一下,如果想重新全部编译呢?又要到makefile里面加上那条clean语句吗 谢谢!
离线
离线
编译后,运行,提示:
Starting D:\Downloads\pc_simulator\demo.exe...
程序异常结束。
The process was ended forcefully.
D:/Downloads/pc_simulator/demo.exe crashed.
该怎么解决?
离线
已经解决了
运行的时候提示出错,说找不到sdl2.dll
把i686-w64-mingw32/bin文件夹下的SDL2.dll拷贝到最外层的bin文件夹里发现成功运行了
离线
WIN1064位安装QT4.8.7+QT CREATOR4.8.2 64位,启动QT Creator弹出错误窗口
离线
跟贴,问一下,如何修改运行的窗体大小
离线
可以直接修改 SDL_CreateWindow 这个函数的参数,
或者修改 lv_conf.h:
/* Horizontal and vertical resolution of the library.*/
#define LV_HOR_RES (800)
#define LV_VER_RES (480)
清除(clean)后再重新编译即可。
离线
问题一:直接修改 SDL_CreateWindow 这个函数的参数,长宽设置为800X600,没有修改 lv_conf.h文件的情况下,程序运行。
窗体和程序显示的控件按比例一同变大了,显示开始有些模糊,鼠标按上面的几个按钮,基本失效。
问题二、修改 lv_conf.h文件的情况下,程序运行。修改lv_conf.h文件后,第一步清除,第二步重新构建。
窗体变大了,但显示的内容没有按比较变大。
请晕哥能不能解释一下,这两点的不同之处。
想贴几张图片上来,来说明情况,但没能明白,怎么贴图
离线
问题一:直接修改 SDL_CreateWindow 这个函数的参数,长宽设置为800X600,没有修改 lv_conf.h文件的情况下,程序运行。
窗体和程序显示的控件按比例一同变大了,显示开始有些模糊,鼠标按上面的几个按钮,基本失效。
问题二、修改 lv_conf.h文件的情况下,程序运行。修改lv_conf.h文件后,第一步清除,第二步重新构建。
窗体变大了,但显示的内容没有按比较变大。
请晕哥能不能解释一下,这两点的不同之处。
离线
另外在问个问题
在单片机中使用littlevgl,如何识别外部按键,有这方面的例子吗?
离线
外部按键这个,已经解决了,你在论坛上有说明
离线
问题一:直接修改 SDL_CreateWindow 这个函数的参数,长宽设置为800X600,没有修改 lv_conf.h文件的情况下,程序运行。
窗体和程序显示的控件按比例一同变大了,显示开始有些模糊,鼠标按上面的几个按钮,基本失效。
是的,你当时问我怎么改模拟器大小,我直接找创建窗口的地方,试了一下 SDL_CreateWindow 确实直接可以改模拟器窗口大小,
但是只改这里是不行的,会带来其它后遗症, 这不触摸屏就乱套了.
至于为什么要 clean再编译才能起作用晚点公布答案
因为Makefile 写得不够严谨, 比如修改了 lv_conf.h 里面的长、宽之后,应该重新编译 monitor.c, 也就是说monitor.o 应该依赖 lv_conf.h, 实际上Makefile并没有这么做。
离线
问题二、修改 lv_conf.h文件的情况下,程序运行。修改lv_conf.h文件后,第一步清除,第二步重新构建。
窗体变大了,但显示的内容没有按比较变大。
请晕哥能不能解释一下,这两点的不同之处。
windows下gcc编译速度太慢,我在虚拟机ubuntu里面5分钟可以全部来过一次,windows半小时以上。
我试了一下修改lv_conf.h, 偷懒只删除 monitor.o, 确实和你上面的表现一致。
git clone https://github.com/littlevgl/pc_simulator.git
cd pc_simulator
git submodule update --init
make ###运行正常
./demo
make ###改 lv_config.h
./demo ###窗口放大正常
从上说明修改
#define LV_HOR_RES (800)
#define LV_VER_RES (600)
肯定是可以的,至于为什么有问题,肯定是我们操作有问题。
离线
装了官方的mingw,添加msys路径正常了。
15:36:02: 为项目pc_simulator执行步骤 ...
15:36:02: 正在启动 "C:\mingw-w64_686\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin\mingw32-make.exe" all
process_begin: CreateProcess(NULL, pwd, ...) failed.
mingw32-make: Makefile:17: pipe: No error
process_begin: CreateProcess(NULL, pwd, ...) failed.
mingw32-make: Makefile:18: pipe: No such file or directory
process_begin: CreateProcess(NULL, pwd, ...) failed.
mingw32-make: Makefile:19: pipe: No such file or directory
process_begin: CreateProcess(NULL, pwd, ...) failed.
mingw32-make: Makefile:41: pipe: No such file or directory
Makefile:19: /lv_examples/lv_examples.mk: No such file or directory
mingw32-make: *** No rule to make target '/lv_examples/lv_examples.mk'. Stop.
15:36:02: 进程"C:\mingw-w64_686\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin\mingw32-make.exe"退出,退出代码 2 。
Error while building/deploying project pc_simulator (kit: MinGW4.8.2)
When executing step "Make"
15:36:02: Elapsed time: 00:00.
我遇到了和你一样的问题,
官网下载 MinGW-w64 - for 32 and 64 bit Windows,qt设置了安装路径的gcc g++,还是一样
不知道你的msys是添加到哪里,怎么设置的?
最近编辑记录 九霄云外 (2019-03-11 15:37:01)
小薏科技------全志F系列芯片供应、方案开发、技术支持 QQ:610943940
离线
离线
mark
离线
不错的教程,QtCreator/Mingw平台编译运行调试LittleVGL
离线
lv_obj_t * label3 = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label3, "hello dump#ff0000 debug#");
lv_label_set_recolor(label3, true);
lv_obj_align(label3, lv_scr_act(), LV_ALIGN_CENTER 0, 0);
这里有点看不懂,后面的参数为什么是空呢
离线
正好需要qt
离线