日期:2014-05-16  浏览次数:20889 次

linux arm交叉编译,安装Minigui 3.0.12心得
使用arm-linux 交叉编译器,编译安装 MiniGui3.0.12 心得:
1.Build system ubuntu 10.04
目标平台 ARM 
先下载ARM的 交叉编译器 arm-2009q1-203-arm-none-linux-gnueabi 
(下载地址: http://download.csdn.net/detail/alaofangel/6344351 和 http://download.csdn.net/detail/alaofangel/6344445
安装目标: /opt/arm-2009q1-203 安装方法 参见: http://blog.csdn.net/alaofangel/article/details/12206419 )
强烈建议使用 gnueabi 版本的cross compiler编译器,对于 2.6.18 以后的linux kernel ,eabi是个趋势!
注意: arm-2009q1-203 安装后,设置 系统PATH
#cd /root
#gedit .bashrc
找到PATH相关设置并修改,如果没有 PATH,在该文件的最后一行添加如下(强烈建议在 $PATH 之后):
export PATH=$PATH:/opt/arm-2009q1-203/bin:/opt/arm-2009q1-203/libexec/gcc/arm-none-linux-gnueabi/4.3.3:/opt/arm-2009q1-203/arm-none-linux-gnueabi/bin


2.到www.minigui.com 去下载MiniGui3.0.12(libminigui-gpl-3.0.12) 和所需的支持包(分别是: freetype-2.3.9, zlib-1.2.2, jpegsrc.v7, libpng-1.2.37)
以及Minigui相关的几个包:minigui-res-be-3.0.12.tar, libmgutils-1.0.4, 实例包:mg-samples-3.0.12


3.需先安装Minigui所需的支持包,按顺序安装为:zlib,freetype,jpeg,png, MiniGui resource, MiniGui核心库, MiniGui Utils
======================================
安装zlib
#tar -zxvf zlib-1.2.2.tar.gz


#cd zlib-1.2.2


#./configure --prefix="zlib要安装的目录" --shared


编辑Makefile
将文件中的 几个变量定义修改为 如下
CC=arm-none-linux-gnueabi-gcc
CFLAGS=-fPIC -O3 -DUSE_MMAP -Wall -I/opt/arm-2009q1-203/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/include -I/opt/arm-2009q1-203/bin/../arm-none-linux-gnueabi/libc/usr/include


LDFLAGS=-L. libz.so.1.2.2
LDSHARED=arm-none-linux-gnueabi-gcc -shared -Wl,-soname,libz.so.1
CPP=arm-none-linux-gnueabi-gcc -E


LIBS=libz.so.1.2.2


AR=arm-none-linux-gnueabi-ar rc


prefix =zlib要安装的目录


#make clean


#make all


#make install


======================================
安装freetype
#tar -zxvf freetype-2.3.9-fm20100818.tar.gz


#cd freetype-2.3.9-fm20100818


执行如下,其中 arm-none-linux-gnueabi 为 arm-2009q1-203 安装后设置的目录
freetype要安装的目录,比如 /opt/arm/minigui/target
#./configure --prefix="freetype要安装的目录" --host=arm-none-linux-gnueabi --build=i686-pc-linux-gnulibc1 --enable-shared --with-gnu-ld --without-zlib CFLAGS="-g -O2 -I/opt/arm-2009q1-203/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/include -I/opt/arm-2009q1-203/bin/../arm-none-linux-gnueabi/libc/usr/include"


如果顺利,将见到如下提示:make: Nothing to be done for `unix'.
然后执行:
#make clean
#make all
如果顺利,将见到如下提示:
libtool: link: arm-none-linux-gnueabi-ranlib 安装目标目录/minigui/freetype-2.3.9-fm20100818/objs/.libs/libfreetype.a
libtool: link: ( cd "安装目标目录/minigui/freetype-2.3.9-fm20100818/objs/.libs" && rm -f "libfreetype.la" && ln -s "../libfreetype.la" "libfreetype.la" )


最后执行install
#make install
进入目标路径,执行tree看目录结构如下:
.
├── bin
│?? └── freetype-config
├── include
│?? ├── freetype2
│?? │?? └── freetype
│?? │??     ├── config
│?? │??     │?? ├── ftconfig.h
│?? │??     │?? ├── ftheader.h
│?? │??     │?? ├── ftmodule.h
│?? │??     │?? ├── ftoption.h
│?? │??     │?? └── ftstdlib.h
│?? │??     ├── freetype.h
│?? │??     ├── ftadvanc.h
│?? │??     ├── ftbbox.h
│?? │??     ├── ftbdf.h
│?? │??     ├── ftbitmap.h
│?? │??     ├── ftcache.h
│?? │??     ├── ftchapters.h
│?? │??     ├── ftcid.h
│?? │??     ├── fterrdef.h
│?? │??     ├── fterrors.h
│?? │??     ├── ftgasp.h
│?? │??     ├── ftglyph.h
│?? │??     ├── ftgxval.h
│?? │??