Start Linux Leave Linux a while Back to Linux
分类: LINUX
2018-09-30 18:28:01
移植minigui需要到官网下载以下文件:
1. zlib-1.2.2.tar.gz
2. freetype-2.3.9-fm20100818.tar.gz
3. jpegsrc.v7.tar.gz
4. libminigui-gpl-3.0.12.tar.gz
5. libpng-1.2.37.tar.gz
6. mg-samples-3.0.12.tar.gz
7. minigui-res-be-3.0.12.tar.gz
8. 其他文件依据自己项目决定下载。
移植步骤:
1. zlib-1.2.2
tar -zxvf zlib-1.2.2.tar.gz
./configure –shared
配置结束后修改Makefile:
PREFIX=arm-linux-gnueabi- CC=$(PREFIX)gcc LDSHARED=$(CC) -shared
-Wl,-soname,libz.so.
CPP=$(CC) -E AR=$(PREFIX)ar rc prefix =--prefix=/usr/lichee/miniGUI/cross/zlib
2.
freetype-2.3.9-fm20100818
tar -zxvf freetype-2.3.9-fm20100818.tar.gz
configure配置:
./configure --host=arm-linux-gnueabi --enable-shared
--prefix=/usr/lichee/miniGUI/cross/freetype
make
make install
3. jpeg-7
tar -zxvf jpegsrc.v7.tar.gz
configure配置:
./configure --host=arm-linux-gnueabi --enable-shared
--prefix=/usr/lichee/miniGUI/cross/jpeg-7
make
make install
4. libpng-1.2.37
tar -zxvf libpng-1.2.37.tar.gz
configure配置:
LDFLAGS="-L/usr/lichee/miniGUI/cross/zlib/lib" #
CPPFLAGS="-g -I/usr/lichee/miniGUI/cross/zlib/include" #
./configure #
CC=arm-linux-gnueabi-gcc #
LD=arm-linux-gnueabi-ld #
AS=arm-linux-gnueabi-as #
AR=arm-linux-gnueabi-ar #
CXX=arm-linux-gnueabi-g++ #
--enable-shared #
--host=arm-linux-gnueabi
修改 Makefile prefix=/usr/lichee/miniGUI/cross/png
然后 make && make install
5. minigui-res-be-3.0.12
tar -zxvf minigui-res-be-3.0.12.tar.gz
创建auto_config 文件,并输入
CC=arm-linux-gnueabi-gcc #
CXX=arm-linux-gnueabi-g++ #
LD=arm-linux-gnueabi-ld #
AS=arm-linux-gnueabi-as #
AR=arm-linux-gnueabi-ar #
./configure #
--prefix=/usr/lichee/miniGUI/cross/res
(以上#号改为反斜杠)
执行 ./auto_config,生成 Makefile 文件
然后 make && make install
6. libminigui-3.0.12-linux.tar.gz
tar -zxvf libminigui-3.0.12-linux.tar.gz
创建auto_config 文件,并输入
./configure --prefix=/usr/lichee/miniGUI/cross/core #
--host=arm-linux-gnueabi #
--with-osname=linux #
--disable-pcxvfb #
--enable-gifsupport #
--enable-jpgsupport #
--enable-pngsupport #
--with-targetname=fbcon #
--with-ttfsupport=ft2
(以上#号改为反斜杠)
然后 make && make install
7. 安装 libmgplus-1.2.4
先设置环境变量
export PKG_CONFIG_PATH=/usr/lichee/miniGUI/cross/core/lib/pkgconfig
再运行
./configure #
--host=arm-linux-gnueabi #
--prefix=/usr/lichee/miniGUI/cross/mgplus #
CPPFLAGS=-I/usr/lichee/miniGUI/cross/core/include #
MINIGUI_CFLAGS=-I/usr/lichee/miniGUI/cross/core/include
(以上#号改为反斜杠)
然后 make && make install
8. mg-samples-3.0.12
tar -zxvf mg-samples-3.0.12.tar.gz
这个是minigui的demo sample。
configure配置:
先设置 PKG_CONFIG_PATH 环境变量,指向minigui.pc的路径
export PKG_CONFIG_PATH="/usr/lichee/miniGUI/cross/core/lib/pkgconfig"
./configure --prefix=/usr/lichee/miniGUI/cross/samples #
--host=arm-linux-gnueabi
(以上#号改为反斜杠)
然后 make
报错1:
.../lib/libminigui_ths.so: undefined reference to `WndClientRect'
.../lib/libminigui_ths.so: undefined reference to `pixel2rgb'
.../lib/libminigui_ths.so: undefined reference to `WndRect'
回到 libminigui-3.0.12-linux 目录
$grep -r "WndClientRect" .
发现WndClientRect在libminigui-3.0.12-linux/src/newgdi/gdi.c中,
将inline void WndRect(HWND hWnd, PRECT prc)和inline void WndClientRect(HWND hWnd, PRECT prc)前面的inline去掉。
$grep -r "pixel2rgb" .
发现pixel2rgb在libminigui-3.0.12-linux/src/mybmp/winbmp.c中,
将inline void pixel2rgb (gal_pixel pixel, GAL_Color* color, int depth)前面的inline去掉。
$make;make install
回到 mg-samples-3.0.12目录,继续 make
报错2: dlgdemo.c:40:10: fatal error: mgplus/mgplus.h: No such file or directory
修改 auto_config 为如下:
CPPFLAGS="-I/usr/lichee/miniGUI/cross/core/include -I/usr/lichee/miniGUI/cross/mgplus/include" #
./configure #
--prefix=/usr/lichee/miniGUI/cross/samples #
--host=arm-linux-gnueabi #
CFLAGS=-march=armv5
(以上#号改为反斜杠)
然后重新 make && make install
问题1: