




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
minigui+tslib交叉编译终极教程 2011-05-12 13:32 230人阅读 评论(0) 收藏 举报 第一部分:minigui-1.3.3 移植到SEP4020EVB 详解 在这里只讲怎样将 minigui-1.3.3 移植到开发板 EVB-SEP4020 上去,在 pc 上安装 minigui-1.3.3 不用讲,这里我用到的交叉编译器是 arm-linux-gcc3.4.1 MiniGUI 的编译需要一些库文件,缺省我们的 gcc 基本上都有这些库文件,所以不需要安装,可是现在要交叉编译了,交叉编译器可是不带这些库文件的,所以我们得首先自己编译这些库文件装到交叉编译器中去。 注意一点:库不一定要装最新的,库版本太新,MiniGUI 有可能不认识,像jpeg 库和 ttf 库就是这样,太新了反而用不了,所以要注意版本,以下的库都是我验证过可以和MiniGUI 一起工作的,其它版本的库没试过,不保证能正确通过:) (1) 首先安装 zlib 库,这个是后面的库的编译基础。 /zlib-1.2.3.tar.gz 400 多K ,下载到目录 /root/cross 下 user# tar zxf zlib-1.2.3.tar.gz由于 zlib 库的configure 脚本不支持交叉编译选项,只好自己动用了,手动临时把 gcc 修改成指向我们的交叉编译器 arm-linux-gccRoot# cd /usr/binRoot# mv gcc gcc_backRoot# ln -s /usr/local/arm/3.4.1/bin/arm-linux-gcc ./gccRoot# mv ld ld_backRoot# ln -s /usr/local/arm/3.4.1/bin/arm-linux-ld ./ldOK ,修改完成后回到 /root/cross/zlib-1.2.3 目录下 user#./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 目录下,千万不要装错目录了,不然后面会找不到这个库的 user# makeRoot# make install若用gcc3.4.1 是不会出现什么错误的,呵呵。 安装完后检查一下目录 /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 】 #cd/usr/bin 【root 】 #mvgcc_backgcc 【root 】 #mvld_back ld(2 )安装 png 库,这个是用来显示 png 图形的,MiniGUI 里很多图都是 png 的,如果没有这个库,你的 MiniGUI 将无法正常工作,切记切记! /libpng/libpng-1.2.18.tar.bz2?download (png 库) 还是那句话,库不要用最新的,最新的容易有问题,用这个老一点的就没问题了,呵 root# tar zxf libpng-1.2.18 .tar.gzroot# cd libpng-1.2.18 root# ./configure CC=arm-linux-gcc -build=i686-pc-linux -target=arm-linux -host=arm-linux prefix=/usr/local/arm/3.4.1/arm-linux 注意这边的配置: 使用交叉编译器 安装目录host 指定软将运行平台,不然终端 也会提示说叫你使用host 参数的。 #make #makeinstall 安装完了,查看下/usr/local/arm/3.4.1/arm-linux/ 目录下的 lib 文件夹里是否有 libpng.a , libpng.so 等文件和 include 文件夹里是否有 png.h ,pngconf.h 文件以及 libpng12 文件夹。 (3 )第三步:安装 jpeg 库 在/html/242232006010901.html (jpeg 库)下载到/root/cross/ 下面 #cd/root/cross/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 拷贝过来,放在 /home/source/minigui/jpeg-6b 目录下,否则会出现“make: ./libtool: command not found” 错误。 另外要注意的是:不能使用系统的 libtool ,因为这里要进行的是交叉编译。 #make 下面创建一个目录,否则 make install 的时候会报错。 #mkdir-p/usr/local/arm/3.4.1/arm-linux/man/man1 #makeinstall 安装完了,查看下/usr/local/arm/3.4.1/arm-linux/ 目录下的 lib 文件夹里是否有 libjpeg.so , libjpeg.so.62.0.0 等文件和include 文件夹里是否有 jpeglib.h 文件。 (4 )第四步:安装 libttf 库,这个是 TrueType 字体的支持库,用来显示文字的。 /sourceforge/freetype/freetype-1.3.1.tar.gz 下载到/root/cross/ 下面 注意:MiniGUI 的文档说只支持 1.3.1 版本的 ttf 库,不要把版本弄错了 这个库装起来最麻烦,全部自己手动编译,安装,下面一步一步来做吧 user# tar zxf freetype-1.3.1.tar.gz / 老一套 user# cd freetype-1.3.1 / 进到目录里去 user# mkdir p /root/cross/libttf/extend / 自己另外建立一个目录 user# cp ./lib/* ./lib/arch/ansi/* /root/cross/libttf/ / 把有用的东西拷出来 user#cp ./lib/extend/* /root/cross/libttf/extend/ / 把 extend 目录下的文件也拷出来 注意 cp 命令不要用 r 选项,因为会把一些没用的东西出拷出来的 拷贝完成了,现在来自己手动编译了 user# cd libttf( 就是上面新建的一个目录 )user# arm-linux-gcc -c -fPIC -O2 freetype.c / 不要奇怪,对,我们只要编译这一个 .c 文件,因为它包括了其它所有的 .c 文件了,你可以自己查看它的内容 user# arm-linux-gcc -c -fPIC -O2 -I./ extend/*.c 把 extend 下所有的 .c 文件全部编译 user# arm-linux-gcc -shared -o libttf.so *.o 生成最后的动态链接库,OK 了 此时应该在 libttf 下会出现一个libttf.so 库文件 现在手动安装,得自己建立一下目录 Root mkdir -p /usr/local/arm/3.4.1/arm-linux/include/freetype1/freetypeRoot cp *.h extend/*.h /usr/local/arm/3.4.1/arm-linux/include/freetype1/freetypeRoot cp libttf.so /usr/local/arm/3.4.1/arm-linux/lib安装库完成,哈! (5 )第五步:编译安装 miniGUI 资源包 minigui-res-1.3.3 /download/minigui-res-1.3.3.tar.gz (miniGUI 资源包)下载到/root/cross/ 目录下 #cd /root/cross/minigui-res-1.3.3 #make install 默认安装到/usr/local/lib/minigui/res 目录。 切记后面一定要将此处的资源包拷过去 (6 )第六步:配置编译安装 miniGUI /download/libminigui-1.3.3.tar.gz (miniGUI 库) 下载到/root/cross/ 目录下 MiniGUI 1.3.3 版本在链接 ljpeg lpng 时老是要链接 /usr/lib 下的库,没办法,只好用 前面的方法,使用备份和软连接的方法。 # cd /usr/lib # mv libjpeg.so libjpeg.so_back mv libpng.so libpng.so_back # mv libttf.so libttf.so_back# ln -s /usr/local/arm/3.4.1/arm-linux/lib/libttf.so ./libttf.so# ln-s/usr/local/arm/3.4.1/arm-linux-gcc/lib/libpng.solibpng.so # ln-s/usr/local/arm/3.4.1/arm-linux-gcc/lib/libjpeg.solibjpeg.so 下面进行配置安装: # cd /root/cross/libminigui-1.3.3 由于我使用的是ubuntu8.04 ,所以在这不能使用图形化配置界面make menuconfig ,因为这样在退出保存时会提示你无法保存, 在此不得不说用ubuntu 开发搓!若用fedora8 就没这些问题了 没办法只好用字符界面一个个的配置了 #./configure CC=arm-linux-gcc -build=i686-pc-linux -target=arm-linux -host=arm-linux -disable-galqvfb -disable-galecoslcd -disable-vbfsupport -disable-ttfsupport -disable-type1support prefix=/usr/local/arm/3.4.1/arm-linux 若是在fedora 下开发可用make menuconfig, 具体配置如图: 在 GAL engine Options 里 (NEWGAL) GAL and its engines * NEWGAL engine on Linux FrameBuffer console NEWGAL engine on Qt Virtual FrameBuffer NEWGAL engine on eCos LCD interface * Dummy NEWGAL engine * Have console on Linux FrameBuffer 在 Font Option 里 * Raw bitmap font Var bitmap font / 这个选项去掉,否则,编译时老出错 * Incore font sansserif * Incore font courier * Incore font symbol * Incore font vgas * Qt Prerendered Font TrueType font / 如果需要对这个字体支持 , 需要下载编译安装 freetype 库 Adobe Type1 font / 如果需要对这个字体支持 , 需要下载编译安装 freetype 库 NOTE :上面两个需要编译安装的字体库,在 miniGUI 官网上有的下。 在 Image Options 里 * Includes SaveBitmap-related functions PCX file support LBM/PBM file support TGA file support * GIF file support * JPG file support / 前面我们已经编译安装了 JPG 库,所以这里我们可以选择此项 * PNG file support / 前面我们已经编译安装了 PNG 库, 所以这里我们可以选择此项 在 Development Environment Option 里 (Linux) Platform (arm-linux-gcc) Compiler (glibc) Libc - Installation options Path prefix: /usr/local/arm/3.3.2/arm-linux / 这里, 我们把库装到交叉编译器的目录下 - Additonal Compiler Flags CFLAGS: LDFLAGS: 其他的选项暂时不做改变,使用默认的配置即可 配置之后,进行编译安装: # make / 需要一点时间,耐心等待 # makeinstall 安装完了,查看下/usr/local/arm/3.4.1/arm-linux/ 目录下的 lib 文件夹里是否有 libminigui.so , libmgext.so , libvcongui.so 等文件和 include 文件夹里是否有 minigui 文件夹 (内 有 minigui 相关的头文件)。 好了,现在不要忘记把前面刚刚备份的改回来: # cd /usr/lib # mv libjpeg.so_back libjpeg.so mv libpng.so_back libpng.so mv libttf.so_back libttf.so接着把上面编译的资源包/usr/local/lib/minigui/ 下的res 目录拷到/usr/local/arm/3.4.1/arm-linux/lib/minigui/ 下! ( 7 )安装 popt 库,这个库在编译 mde 程序时需要使用,不然编译没法通过 http:/gd.tuwien.ac.at/utils//dist/rpm-4.1.x/popt-1.7.tar.gz 我是从这里下载的,下载到 /root/crossuser# tar zxf popt-1.7.tar.gzuser# cd popt-1.7user# ./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在此用 ubuntu 又编不过去,又报 gettext 的版本太低,叫我们去下载新的 gettext ,简直无法容忍了! ! 换到 fedora8 下一切顺利,再将其 lib 文件夹下的 libpopt.a , libpopt.la , libpopt.so.0.0.0 和 include 文件夹下的 popt.h 考回到 ubuntu 下的 /usr/local/arm/3.4.1/arm-linux/ 相应目录下 user# make Root# make install( 8 )编译综合例子 mde-1.3.0 /downloads/minigui13/mde-1.3.0.tar.gz (综合例子程序)下载到下载到 /root/cross#cd/root/cross/mde-1.3.0 #./configure CC=arm-linux-gcc -build=i686-pc-linux -target=arm-linux -host=arm-linux#make 一切很顺利,搞定了。编到这步已经很不容易了 交叉编译环境设置好了! ( 9 )移植 minigui 到嵌入式文件系统中 前面是交叉编译的过程,现在把上面编的各种库都移到开发板的文件系统上去 我在 /home/fp/nfs 下建立我的嵌入式系统的根目录,在这里我采用的网络文件系统改起来比较方便,现在我需要把 minigui 的库文件放到里面去, 库文件 把 /usr/local/arm/3.4.1/arm-linux/lib 中相应的库拷到 /home/fp/nfs/lib 目录下去 下面是我拷的库文件: libjpeg.a libmgext-1.3.so.3 libminigui.a libpng.so.2 libttf.a libz.solibjpeg.la libmgext-1.3.so.3.0.0 libminigui.la libpng.so.0rc1 libttf.so libz.so.1libjpeg.so libmgext.a libminigui.so libpopt.a libvcongui-1.3.so.3 libz.so.1.2.3libjpeg.so.62 libmgext.la libm.so libpopt.la libvcongui-1.3.so.3.0.0 miniguilibjpeg.so.62.0.0 libmgext.so libm.so.6 libpopt.so libvcongui.a sharedlibm-2.2.3.so libminigui-1.3.so.3 libpng.a libpopt.so.0 libvcongui.lalibm.a libminigui-1.3.so
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024助理广告师考试思维导图试题及答案
- 棉花纤维的分类及特性试题及答案
- 2024年纺织品设计师的作品展示试题及答案
- 婚礼伴娘测试题及答案
- 精神中心测试题及答案
- 村警考试题及答案
- 各类题型商业美术设计师考试试题及答案
- 卫生打扫课件
- 云南高三理科试题及答案
- 多层次复习的国际商业美术设计师考试方法与试题及答案
- 尾矿库防汛演练
- 广东省深圳市南山区2024-2025学年第一学期期末考试九年级英语试卷(含答案)
- 【MOOC】心理学基础-上海大学 中国大学慕课MOOC答案
- 2025届上海高中高考英语三模试卷含解析
- 国家安全反对邪教
- 2025年春九年级语文下册 第三单元综合测试卷(人教陕西版)
- 创业创新执行力学习通超星期末考试答案章节答案2024年
- 2024秋期国家开放大学《可编程控制器应用实训》一平台在线形考(形成任务1)试题及答案
- 民间艺术课件教学课件
- 风电场生命周期管理
- 中国甲酸钠市场供需态势与投资潜力分析报告2024-2030年
评论
0/150
提交评论