Chinaunix首页 | 论坛 | 博客
  • 博客访问: 403955
  • 博文数量: 58
  • 博客积分: 1775
  • 博客等级: 上尉
  • 技术积分: 755
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-12 15:03
文章分类

全部博文(58)

文章存档

2012年(5)

2011年(43)

2010年(10)

分类: LINUX

2011-09-08 23:25:17

MUIGUI和 QT一样蛋痛,不过这次还算顺利,没遇到多少问题就搞好了,记下来
需要的文件
arm-linux-gcc-3.4.1.tar.bz2
popt-1.7.tar.gz
libpng-1.2.18.tar.gz
freetype-1.3.1
libpng_src.gz
freetype-1.3.1.tar.gz
qvfb-1.0.tar.gz
qvfb-1.1.tar.gz
jpegsrc.v6b.tar.gz
mg-samples-1.6.10.tar.gz
samples-1.6.10.tar.gz
libminigui-1.6.10.tar.gz
minigui-res-1.6.10.tar.gz
sqlite-3.3.5.tar.gz
zlib-1.2.3.tar.tar
1.PC模拟开发环境的搭建
tar -zxvf libminigui-1.6.10.tgz
./configure
make
make install
sudo apt-get install qt3-dev-tools-embeded
qvfb &
gcc -o helloworld helloworld.c -lpthread -lminigui -lz -lm -lpng -ljpeg
2.嵌入式linux库的编译
交叉编译器:arm-linux-gcc 3.4.1
MiniGUI交叉编译过程————————————————————————————————
tar -zxvf libminigui-1.6.10.tgz
CC=arm-linux-gcc ./configure –prefix=/usr/local/arm/2.95.3/arm-linux/ \
–build=i386-linux \
–host=arm-unknown-linux \
–target=arm-unknown-linux
make
make install

第一步:首先建立新目录
[root@localhost /]# mkdir -p ~/cross
第二步:安装 zlib 库,这个是后面的库的编译基础。

400多K,下载到目录 ~/cross下
[root@localhost cross]# tar zxvf zlib-1.2.3.tar.gz
由于 zlib 库的configure 脚本不支持交叉编译选项,只好自己手动临时把 gcc 修改成指向我们的交叉编译器 arm-linux-gcc
[root@localhost cross]# cd /usr/bin/
[root@localhost bin]# mv gcc gcc_back
[root@localhost bin]# ln -s /usr/local/arm/3.4.1/bin/arm-linux-gcc ./gcc
[root@localhost bin]# mv ld ld_back
[root@localhost bin]# ln -s /usr/local/arm/3.4.1/bin/arm-linux-ld ./ld
修改完成后回到~/cross/zlib-1.2.3 目录下:
[root@localhost bin]# cd ~/cross/zlib-1.2.3
[root@localhost zlib-1.2.3]# ./configure –prefix=/usr/local/arm/3.4.1/arm-linux –shared
注意:这里配置指向/usr/local/arm/3.4.1/arm-linux 目录,会自动安装在 /usr/local/arm/3.4.1/arm-linux / [include,lib] 目录下。
[root@localhost zlib-1.2.3]# make
[root@localhost zlib-1.2.3]# make install
安装完后检查一下目录 /usr/local/arm/3.4.1/arm-linux / [include,lib] ,假如 include 中没有 zlib.h 之类的头文件,lib 中没有 libz.so.1.2.3 ,那就自己手动拷到这些目录下去,记着拷的时候把所有的 *.h 都需要拷过去,在拷库的时候用 cp –a libz.* /…./lib 就行,要用上 –a 选项
注意:记着把刚才改过的 gcc 再改回去,不然后面会出错的!!!!!(一定记得改)
[root@localhost zlib-1.2.3]# cd /usr/bin/
[root@localhost bin]# mv gcc_back gcc
mv:是否覆盖“gcc”? y
[root@localhost bin]# mv ld_back ld
mv:是否覆盖“ld”? y
第三步:安装 png 库,这个是用来显示 png 图形的,MiniGUI 里很多图都是 png 的,如果没有这个库,你的 MiniGUI 将无法正常工作。

(png 库)下载到~/cross下面
[root@localhost bin]# cd ~/cross
[root@localhost cross]# tar xjvf libpng-1.2.18.tar.bz2
[root@localhost libpng-1.2.18]# cd libpng-1.2.18
[root@localhost libpng-1.2.18]# ./configure CC=arm-linux-gcc –build=i686-pc-linux –target=arm-linux –host=arm-linux prefix=/usr/local/arm/3.4.1/arm-linux
[root@localhost libpng-1.2.18]# make
[root@localhost libpng-1.2.18]# make install
安装结束后,查看下/usr/local/arm/3.4.1/arm-linux/目录下的 lib 文件夹里是否有 libpng.a,libpng.so 等文件和 include 文件夹里是否有 png.h,pngconf.h 文件以及 libpng12 文件夹。
第四步:安装 jpeg 库

(jpeg 库)下载到~/cross下面
[root@localhost libpng-1.2.18]# cd ~/cross
[root@localhost cross]# tar zxvf jpegsrc.v6b.tar.gz
[root@localhost cross]# cd jpeg-6b/
[root@localhost jpeg-6b]# ./configure CC=arm-linux-gcc –build=i686-pc-linux –target=arm-linux –host=arm-linux prefix=/usr/local/arm/3.4.1/arm-linux –enable-shared
注意:在 make 之前,需从前面 libpng-1.2.18 的源码目录中把 libtool 拷贝过来,放在~/cross/minigui/jpeg-6b目录下,否则会出错。
[root@localhost jpeg-6b]# cp ../libpng-1.2.18/libtool .
[root@localhost jpeg-6b]# make
注意:在 make install 之前需创建一个目录,否则 make install 的时候会报错。
[root@localhost jpeg-6b]# mkdir -p /usr/local/arm/3.4.1/arm-linux/man/man1
[root@localhost jpeg-6b]# make install
安装结束后,查看下/usr/local/arm/3.4.1/arm-linux/目录下的 lib 文件夹里是否有 libjpeg.so,libjpeg.so.62.0.0 等文件和include 文件夹里是否有 jpeglib.h 文件
第五步:安装 libttf 库,这个是 TrueType 字体的支持库,用来显示文字的。

下载到~/cross下面,只支持 1.3.1 版本的 ttf 库:
注意:MiniGUI 的文档说只支持 1.3.1 版本的 ttf 库,不要把版本弄错了
[root@localhost jpeg-6b]# cd ~/cross
[root@localhost cross]# tar zxvf freetype-1.3.1.tar.gz
[root@localhost cross]# cd freetype-1.3.1
[root@localhost freetype-1.3.1]# mkdir -p ~/cross/libttf/extend
[root@localhost freetype-1.3.1]# cp ./lib/* ./lib/arch/ansi/* ~/cross/libttf/
cp: 略过目录 “./lib/arch”
cp: 略过目录 “./lib/extend”
[root@localhost freetype-1.3.1]# cp ./lib/extend/* ~/cross/libttf/extend/
[root@localhost freetype-1.3.1]# cd ../libttf/
[root@localhost libttf]# arm-linux-gcc -c -fPIC -O2 freetype.c
[root@localhost libttf]# arm-linux-gcc -c -fPIC -O2 -I./ extend/*.c
[root@localhost libttf]# arm-linux-gcc –shared -o libttf.so *.o
现在手动安装,得自己建立一下目录:
[root@localhost libttf]# mkdir -p /usr/local/arm/3.4.1/arm-linux/include/freetype1/freetype
[root@localhost libttf]# cp *.h extend/*.h /usr/local/arm/3.4.1/arm-linux/include/freetype1/freetype
[root@localhost libttf]# cp libttf.so /usr/local/arm/3.4.1/arm-linux/lib
安装库完成。
第六步:编译安装 miniGUI 资源包 minigui-res-1.3.3

(miniGUI资源包)下载到~/cross目录下。
[root@localhost libttf]# cd ~/cross
[root@localhost cross]# tar zxvf minigui-res-1.3.3.tar.gz
第七步:安装 popt 库,这个库在编译 mde 程序时需要使用,不然编译没法通过
[user]# tar zxf popt-1.7.tar.gz
[user]# cd popt-1.7
[user]# ./configure CC=arm-linux-gcc –build=i686-pc-linux –target=arm-linux –host=arm-linux prefix=/usr/local/arm/3.4.1/arm-linux –enable-shared –enable-shared –enable-static
[user]# make
[Root]# make install
第七步:编译SQLite-3.3.5
(1)在/root下新建目录sqlite,拷贝sqlite-3.3.5.tar.gz到该目录并解压缩。
tar –zxvf sqlite-3.3.5.tar.gz
(3)修改配置文件:configure
vi configure
修改以下几个部分:(将其注释掉,如下所示:)
a):# if test “$cross_compiling” = “yes”; then
# { { echo “$as_me:$LINENO: error: unable to find a compiler for building build tools” >&5
#echo “$as_me: error: unable to find a compiler for building build tools” >&2;}
# { (exit 1); exit 1; }; }
# fi
b):#else
# test “$cross_compiling” = yes &&
# { { echo “$as_me:$LINENO: error: cannot check for file existence when cross compiling” >&5
#echo “$as_me: error: cannot check for file existence when cross compiling” >&2;}
# { (exit 1); exit 1; }; }
c):#else
# test “$cross_compiling” = yes &&
# { { echo “$as_me:$LINENO: error: cannot check for file existence when cross compiling” >&5
#echo “$as_me: error: cannot check for file existence when cross compiling” >&2;}
# { (exit 1); exit 1; }; }
./configure --prefix=/usr/local/arm/3.4.1/arm-linux/ --disable-tcl --host=arm-linux

$ vim Makefile

 将下面的这一行

BCC = arm-linux-gcc -g -O2

改成:

BCC = gcc -g -O2

最后,烧录板子
生成Cramfs:
mkcramfs /nfs nfs.cramfs
烧录Cramfs文件系统:

nfs 31000000 192.168.31.130:/home/ubuntu/nfs/nfs.cramfs
nand erase 0×600000 0x1e00000

nand write 0×31000000 0×600000 0×1300000

设置启动参数
set bootargs root=/dev/mtdblock2 console=ttyS0,115200 rootfstype=cramfs mem=32mb
set bootargs root=/dev/nfs rw nfsroot=192.168.31.130:/home/ubuntu/nfs ip=192.168.31.7 console=ttyS0,115200 mem=32mb

阅读(2280) | 评论(0) | 转发(0) |
0

上一篇:vim自动补全 tab

下一篇:不知道干什么了

给主人留下些什么吧!~~