miniGUI的初步应用
参考:http://wenku.baidu.com/link?url=M3pELCJWKb_s2SY_xD4QtJppLAY45elz8D_dRBZ6SDqkJKafgVukGqDpQ2d6FLB0-cpuQTMSe7V54KXg5f2hTny0Y2KWwiy_zMumgM2SS7G
首先交叉编译共聚链里面需要安装这些库:
zlib-1.2.3.tar.gz 是最基本的编辑库
freetype-2.3.9.tar.gz 字体库
jpegsrc.v7.tar.gz jpg图片支持库
libpng-1.2.37.tar.gz png图片支持库
和一些不是必须的支持库:
qvfb2-2.0.tar.gz 虚拟帧缓冲区(基于GTK版)
gvfb-1.0.0.tar.gz 虚拟帧缓冲区(基于QT版)
注意:这些库都来自miniGUI官网下载的,其他来源库的可能会有版本问题
不过zlib我还是用zlib-1.2.3.tar.gz吧,应该不会有问题。
为了不耽误其他工作我从新建立一个交叉编译工具链:
在/home/minigui/usr/.....下有刚刚解压的arm-linux-gcc-4.3.2交叉编译工具。打算把所有与miniGUI相关的工具链都放在这个工具链里面。开发miniGUI时使用这个工具链。
准备工作:安装一些miniGUI的支持库
一:安装zlib-1.2.3.tar.gz库
1.zlib库移植
--------下载
--------解压 tar xvzf zlib-1.2.3.tar.gz
--------cd zlib-1.2.3
--------生成Makefile(注意zlib只能静态,动态分开编译,因此要生成两次Makefile和两次编译和安装)
生成静态库 ./configure --prefix=$PWD/output/arm
export CC=arm-linux-gcc
CPP="arm-linux-gcc -E"
AR="arm-linux-ar rc"
RANLIB=arm-linux-ranlib
--------编译 make
--------安装 make install
1. 准备以下源码包(下载)
2. 配置编译安装MiniGUI核心库
step1:
#cd libminigui-gpl-3.0.12
修改根目录configure文件,在文件开头添加如下信息:
CC=arm-none-linux-gnueabi-gcc
CXX=arm-none-linux-gnueabi-g++
LD=arm-none-linux-gnueabi-ld
AS=arm-none-linux-gnueabi-as
AR=arm-none-linux-gnueabi-ar
./configure --prefix=$PWD/tmp/ --host=arm-linux --target=arm-linux --build=i386-linux --with-osname=linux --with-style=classic --with-targetname=fbcon --enable-autoial --enable-rbf16 --disable-vbfsupport
最后提示:
Going to generate license pictures ...
./configure: line 15541: ./runme.sh: No such file or directory
WARNING: failed to generate license pictures.
可以不用管它,继续编译
step3:编译
#make
此时会遇到一个错误,关于pcxvfb.c的错误,修改Makefile:
src/newgal/pcxvfb/Makefile,把以下两个地方都去掉:
177 oldincludedir = /usr/include
194 INCLUDES = -I$(abs_top_srcdir)/src/include -I$(abs_top_srcdir)/include
-I$(abs_top_srcdir)/src/newgal/ -I/usr/include
将红色的注释掉。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
├── etc │ └── MiniGUI.cfg ├── include │ └── minigui │ ├── common.h │ ├── control.h │ ├── ctrl │ │ ├── animation.h │ │ ├── button.h │ │ ├── combobox.h │ │ ├── coolbar.h │ │ ├── ctrlhelper.h │ │ ├── edit.h │ │ ├── gridview.h │ │ ├── iconview.h │ │ ├── listbox.h │ │ ├── listview.h │ │ ├── menubutton.h │ │ ├── monthcal.h │ │ ├── newtoolbar.h │ │ ├── progressbar.h │ │ ├── propsheet.h │ │ ├── scrollbar.h │ │ ├── scrollview.h │ │ ├── spinbox.h │ │ ├── static.h │ │ ├── textedit.h │ │ ├── trackbar.h │ │ └── treeview.h │ ├── customial.h │ ├── dti.c │ ├── endianrw.h │ ├── fixedmath.h │ ├── gdi.h │ ├── mgconfig.h │ ├── minigui.h │ ├── nucleus_pthread.h │ ├── nucleus_semaphore.h │ ├── ose_semaphore.h │ ├── own_malloc.h │ ├── own_stdio.h │ ├── psos_pthread.h │ ├── psos_semaphore.h │ ├── threadx_pthread.h │ ├── threadx_semaphore.h │ ├── ucos2_pthread.h │ ├── ucos2_semaphore.h │ ├── vxworks_pthread.h │ ├── vxworks_semaphore.h │ ├── win32_dirent.h │ ├── win32_pthread.h │ ├── win32_sched.h │ ├── win32_semaphore.h │ ├── window.h │ └── xvfb.h ├── lib │ ├── libminigui_ths-3.0.so.12 -> libminigui_ths-3.0.so.12.0.0 │ ├── libminigui_ths-3.0.so.12.0.0 │ ├── libminigui_ths.a │ ├── libminigui_ths.la │ ├── libminigui_ths.so -> libminigui_ths-3.0.so.12.0.0 │ └── pkgconfig │ └── minigui.pc └── share └── minigui └── cmake └── Modules ├── common.cmake ├── FindFREETYPE.cmake ├── FindJPEG.cmake ├── FindMiniGUI.cmake ├── FindPNG.cmake ├── FindPTHREAD.cmake └── FindZLIB.cmake
3.编译安装 miniGUI 资源包 minigui-res-be-3.0.12
step1:
# cd minigui-res-be-3.0.12
修改根目录configure文件,在文件开头添加如下信息:
CC=arm-none-linux-gnueabi-gcc
CXX=arm-none-linux-gnueabi-g++
LD=arm-none-linux-gnueabi-ld
AS=arm-none-linux-gnueabi-as
AR=arm-none-linux-gnueabi-ar
step2:配置:
#mkdir tmp
#./configure --prefix=$PWD/tmp/minigui
step3:编译:
#make
step4:安装:
#make install
注意:在tmp 目录下生成一个minigui目录,切记后面一定要将此处的资源包拷过去
4.编译综合例子mg-samples
由于samples包含了很多例子,我们只需要拿出一个例子来试一下就可以了,所以进入notebook文件夹
step1. 编译notebook程序
# cd notebook/
step2:命令行编译:
可以直接命令行编译,不用notebook下面的makefile编译
# arm-none-linux-gnueabi-gcc -I/usr/local/minigui/include -L/usr/local/minigui/lib -o notebook main.c -ljpeg -lminigui_ths -lpthread -ldl -lz -lpng