9G45平台MiniGUI3.0.12移植总结
来源:互联网 发布:视频加背景音乐软件 编辑:程序博客网 时间:2024/06/10 16:08
以前接触MiniGUI近2年的时间,也没有做过MiniGUI的移植工作,近日利用调研的机会,对MiniGUI进行了一下在9G45平台的移植工作。简单记录如下。
- 移植准备
- 交叉编译工具链-$HOME/usr/arm-2008q1/arm-none-linux-gnueabi/arm-none-linux-gnueabi-gcc
- 需要移植的软件包
- zlib-1.2.2
- libpng-1.2.37
- freetype-2.3.9-fm20100818
- jpeg-7
- tslib-1.4
- libminigui-gpl-3.0.12
- minigui-res-be-3.0.12
- libmgplus-1.2.4
- libmgutils-1.0.4
- mg-samples-3.0.12
- 移植过程
- zlib库的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I${TOOLCHAIN}/include/c++/4.2.3"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc"./configure --prefix=${HOME}/tmp/crosscomplie \ --shared \ && make && sudo make install && echo "Make successful."
- tslib库的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport INSTALL_DIR=${HOME}/tmp/crosscompileexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I${TOOLCHAIN}/include/c++/4.2.3 -I${INSTALL_DIR}/include"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc -L${TOOLCHAIN}/libc/lib -L${INSTALL_DIR}/lib"export LIBS="-lm -lz"./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi \ --target=arm-none-linux-gnueabi --prefix=${HOME}/tmp/crosscomplie \ && make && make install && echo "Make successful."
- png库的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport INSTALL_DIR=${HOME}/tmp/crosscompileexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I${TOOLCHAIN}/include/c++/4.2.3 -I${INSTALL_DIR}/include"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc -L${TOOLCHAIN}/libc/lib -L${INSTALL_DIR}/lib"export LIBS="-lm -lz"./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi \ --target=arm-none-linux-gnueabi --prefix=${HOME}/tmp/crosscomplie \ && make && make install && echo "Make successful."
- jpeg库的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I${TOOLCHAIN}/include/c++/4.2.3"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc"./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi \ --target=arm-none-linux-gnueabi --prefix=${HOME}/tmp/crosscomplie \ --enable-shared \ && make && make install && echo "Make successful."
- freetype的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I${TOOLCHAIN}/include/c++/4.2.3"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc"./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi \ --target=arm-none-linux-gnueabi --prefix=${HOME}/tmp/crosscomplie \ --enable-static \ && make && make install && echo "Make successful."
- MiniGUI库的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport INSTALL_DIR=${HOME}tmp/crosscompileexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I./include -I${TOOLCHAIN}/include/c++/4.2.3 -I${INSTALL_DIR}/include -I${TOOLCHAIN}/libc/usr/include -I${INSTALL_DIR}/include/ts"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc -L${TOOLCHAIN}/libc/lib -L${INSTALL_DIR}/lib"export LIBS="-lm -lz -ldl -lpthread -lpng -ljpeg -lfreetype -lts"./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi \ --target=arm-none-linux-gnueabi --prefix=${HOME}/tmp/crosscomplie \ --enable-tslibial --enable-videofbcon \ --enable-splash=no --enable-screensaver=no \ && make && make install && echo "Make successful."
- MiniGUI 资源库的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport INSTALL_DIR=${HOME}/tmp/crosscompileexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I./include -I${TOOLCHAIN}/include/c++/4.2.3 -I${INSTALL_DIR}/include -I${TOOLCHAIN}/libc/usr/include -I${INSTALL_DIR}/include/ts"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc -L${TOOLCHAIN}/libc/lib -L${INSTALL_DIR}/lib"export LIBS="-lm -lpthread -lpng -ljpeg -lfreetype -lts"./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi \ --target=arm-none-linux-gnueabi --prefix=${HOME}/tmp/crosscomplie \ && make && make install && echo "Make successful."
- MGPlus的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport INSTALL_DIR=${HOME}/tmp/crosscompileexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I./include -I${TOOLCHAIN}/include/c++/4.2.3 -I${INSTALL_DIR}/include -I${TOOLCHAIN}/libc/usr/include"export CXXFLAGS="-I. -I./include -I${TOOLCHAIN}/include/c++/4.2.3 -I${INSTALL_DIR}/include -I${TOOLCHAIN}/libc/usr/include"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc -L${TOOLCHAIN}/libc/lib -L${INSTALL_DIR}/lib"export LIBS="-lpng -ljpeg -lz -lpthread -ldl -lts -lfreetype -lminigui_ths"export MINIGUI_CFLAGS="-I${INSTALL_DIR}/include"export MINIGUI_LIBS="-lminigui_ths"./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi \ --target=arm-none-linux-gnueabi --prefix=${HOME}/tmp/crosscomplie \ && make && make install && echo "Make successful."
- MGUtils的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport INSTALL_DIR=${HOME}/tmp/crosscompileexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I./include -I${TOOLCHAIN}/include/c++/4.2.3 -I${INSTALL_DIR}/include -I${TOOLCHAIN}/libc/usr/include -I${INSTALL_DIR}/include/minigui"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc -L${TOOLCHAIN}/libc/lib -L${INSTALL_DIR}/lib"export LIBS="-lpng -ljpeg -lz -lpthread -lts -ldl -lfreetype -lminigui_ths"export MINIGUI_CFLAGS="-I${INSTALL_DIR}/include/minigui"export MINIGUI_LIBS="-L${INSTALL_DIR}/lib"./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi \ --target=arm-none-linux-gnueabi --prefix=${HOME}/tmp/crosscomplie \ && make && make install && echo "Make successful."
- MGSamples的移植
export TOOLCHAIN=${HOME}/usr/toolchain/arm-2008q1/arm-none-linux-anueabiexport INSTALL_DIR=${HOME}/tmp/crosscompileexport CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AS=arm-none-linux-gnueabi-asexport LD=arm-none-linux-gnueabi-ldexport CFLAGS="-I. -I./include -I${TOOLCHAIN}/include/c++/4.2.3 -I${INSTALL_DIR}/include -I${TOOLCHAIN}/libc/usr/include -I${INSTALL_DIR}/include/minigui"export LDFLAGS="-L${TOOLCHAIN}/lib -L${TOOLCHAIN}/libc -L${TOOLCHAIN}/libc/lib -L${INSTALL_DIR}/lib"export LIBS="-lpng -ldl -lpthread -lts -ljpeg -lz -lfreetype -lminigui_ths"export MINIGUI_CFLAGS="-I${INSTALL_DIR}/include/minigui"export MINIGUI_LIBS="-L${INSTALL_DIR}/lib"./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi \ --target=arm-none-linux-gnueabi --prefix=${HOME}/tmp/crosscomplie \ && make && make install && echo "Make successful."
- zlib库的移植
- 遇到的问题及解决方法
- 缺少链接库—根据提示,缺少什么库就在编译脚本中用-L和-l指定就OK了
- 编译MiniGUI的过程中,遇到src/newgal/pcxvfb/Makefile.am和Makefile.in中直接INCLUDES了/usr/include目录,将这个目录去掉以避免引用到PC上的头文件
- tslib配置的问题。MGSample运行时,提示信息“No raw modules loaded“,查看tslib的代码,发现是tslib的配置问题,需要在目标平台上设定:
export TSLIB_PLUGINDIR=/usr/local/lib/ts export TSLIB_CONFFILE=/etc/ts.conf</span>
两个环境变量,才能够直接查找到。 - MiniGUI.cfg配置文件的修改:
# GAL engine and default optionsgal_engine=fbcondefaultmode=800x480-16bpp# IAL engineial_engine=tslibmdev=/dev/input/event0[fbcon]defaultmode=800x480-16bpp [cursorinfo] # Edit following line to specify cursor files path cursorpath=/usr/local/share/minigui/res/cursor/ [resinfo] respath=/usr/local/share/minigui/res/
0 0
- 9G45平台MiniGUI3.0.12移植总结
- MiniGUI3.0.12 移植到mini2440
- miniGUI3.0.12移植到Hi3531
- miniGUI3.0.12移植到Hi3531
- miniGUI3.0.12移植到Hi3531
- miniGUI3.0.12移植到Hi3531
- Ubuntu下miniGUI3.0.12安装与移植
- Minigui3.0.12移植到nuc951上
- minigui3.0.12之初体验-移植篇
- minigui3.0.12交叉编译(mips平台)
- 9G45 开始画板
- MiniGUI3移植到Hi3515全过程
- MiniGUI3移植到Hi3515全过程
- Helper2416开发板移植minigui3.0.12之二:移植到开发板
- Minigui3.0.12完美安装
- minigui3.0.12 交叉编译
- MiniGui3.0.12在主机上的配置及在开发板上的移植
- atmel的9G45研发前期
- signed unsigned 引发的血案
- Ext.Net GridPanel Selection 后台取选中行
- MapReduc:1-3:计算Job运行时的CPU与内存平均利用率
- 工作问题积累(二十)销毁windows对象时,使用DestroyWindow而不是delete C++
- Qt中绘图坐标QPainter,Viewport与Window的关系
- 9G45平台MiniGUI3.0.12移植总结
- Kinect实现简单的三维重建
- iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
- 55岁毕福剑打篮球狂揽73分 观众:不服不行
- MySQL命令行导出数据库
- 黑马程序员_Java基础_GUI图形界面入门
- web.xml中的load-on-startup
- httpClient 设置代理请求接口
- matlab 的一些形态学函数