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
│?? │??