在ARM9(s3c2410)上移植GUI系统(gtk+ 与 DirectFb)
|
====================================================
文档名:在ARM9(s3c2410)上移植GUI系统(gtk+ 与 DirectFb) 文档撰写人:卢名扬(chinalmy) 第一次完成日期:2008_08_06 E-mail:chinalmy@yahoo.com.cn 附加: 由于下学期大四要找工作了,所以比较忙。只是做一些笔记性的记录。再加上整个GUI系统移植后还有许多问题。在9月初将整理一份详尽的"How -To"文档。但是我能保证的是,所有步骤没有隐瞒或者遗漏。如果你遇到困难,可以与我联系,很乐意与你交流。更加欢迎留言或来信批评指正,谢 谢。 另外,这份文档只有参考价值。如果你完全按照步骤来完成交叉编译工作,难度比较大。如果你比较忙的话,我很乐意把交叉编译好的“GTK-DFB”文档,与你分享,当作一个参考。欢迎来信索取。!~(为了交流方便,我的手机是:13851807025) ==================================================== 近期完成了 GTK+ 与 DirectFB 往ARM9上的移植。 我开发平台是:Magic2410(广东周立功生产) Fedora8 (完全安装方式) 我所用的软件:Gtk-DFB相关: 1:zlib-1.2.3.tar.bz2 2:libpng-1.2.19.tar.bz2 3:glib-2.12.13.tar.bz2 4:atk-1.19.3.tar.bz2 5:freetype-2.3.5.tar.bz2 6:libxml2-2.6.30.tar.gz 7:fontconfig-2.4.2.tar.gz 8:jpegsrc.v6b.tar.gz 9:DirectFB-1.0.0.tar.gz 10:cairo-1.4.12.tar.gz 11:pango-1.16.5.tar.gz 12:gtk+-2.10.14.tar.bz2 交叉编译相关: arm-linux-gcc-3.4.1.tar.bz2 环境变量: export target=arm-linux export PATH=$PATH:/home/chinalmy/gtk_dfb/arm_tool_arm_3.4.1/bin export PREFIX=/home/chinalmy/gtk_dfb/target export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib export PKG_CONFIG_PATH=/home/chinalmy/gtk_dfb/target/lib/pkgconfig export PATH=$PREFIX/bin:$PATH 步骤: --------------------------------------------------------- 说明:其中“./configure”与“make”并不是直接执行的命令,后接有具体参数,为了清晰的缘故,详请见附录一。 --------------------------------------------------------- ①zlib-1.2.3.tar.bz2 ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ②libpng-1.2.19.tar.bz2 ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ③glib-2.12.13.tar.bz2 ↓在configure中找到“cannot run test program while cross compiling”与“cross-compiling”,并把各自所在行的下方的“{ (exit 1); exit 1; };”去掉。 ↓./configure ↓修改 glib/giounix.c 中的 #include<bits/posix1_lim.h> ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ④atk-1.19.3.tar.bz2 ↓./configure ↓修改MakeFile 中的 glib_genmarshal 为 /usr/bin/glib_genmarshal ↓exit ↓去掉 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib ↓重新设定删减后的环境变量 ↓make clean ↓make ↓make install ↓加上 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib --------------------------------------------------------- --------------------------------------------------------- ⑤freetype-2.3.5.tar.bz2 ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ⑥libxml2-2.6.30.tar.gz ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- --------------------------------------------------------- ⑦fontconfig-2.4.2.tar.gz ↓./configure ↓exit ↓去掉 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib ↓重新设定删减后的环境变量 ↓make clean ↓make ↓make install ↓加上 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib --------------------------------------------------------- --------------------------------------------------------- ⑧jpegsrc.v6b.tar.gz ↓./configure ↓make clean ↓make ↓make install ↓make install_lib ↓make install_headers --------------------------------------------------------- --------------------------------------------------------- ⑨DirectFB-1.0.0.tar.gz ↓./configure ↓make clean ↓make ↓make install --------------------------------------------------------- ⑩cairo-1.4.12.tar.gz ↓./configure ↓make clean ↓make ↓make install ↓新增以下 lib 到 cairo.pc 中: -lfreetype -lfontconfig -ldirectfb -lz -ldirect -lpng12 -lxml2 -lfusion --------------------------------------------------------- ①①pango-1.16.5.tar.gz ↓./configure ↓make clean ↓make ↓make install ↓添加以下lib到pango.pc中: -lglib-2.0 -lgmodule-2.0 -lgobject-2.0 添加以下lib到pangocairo.pc中: -lpangoft2-1.0 ↓制造pango.modules(详见附录二) --------------------------------------------------------- ①②gtk+-2.10.14.tar.bz2 ↓./configure ↓exit ↓去掉 export LD_LIBRARY_PATH=/home/chinalmy/gtk_dfb/target/lib export PATH=$PREFIX/bin:$PATH ↓重新设定删减后的环境变量 ↓make clean ↓make ↓make install ↓如果你在编译的过程中遇到jpeg 出错无法通过的话,sorry我还没有解决这个问题。你可以在"configure"中把他屏蔽掉(加上--without-libjpeg ) ↓如果你在编译的过程中遇到png 出错无法通过的话,那么请把/include/下的“zlib.h”“zconf”copy到/libpng12/下 ↓制造gdk_pixbuf.loaders -> 到“etc/gtk-2.0/” 下(见附录二) --------------------------------------------------------- --------------------------------------------------------- 大结局::) 至此,整个GTK-DFB 图形系统制造完毕,目前你需要解决字体的问题,在arm9开发箱上的显示全是“小方框”。 英文字体(就是后缀ttf的东西),到处都有就不多说了;中文字体我用的是winxp下的“仿宋”(3M大小)。效果还不错`~呵呵 把字体放到你的"etc/font"下面confgure 文件所指向的文件目录下。 等等!你还需要把交叉编译工具链中的“librt*”一共四个文件copy到“/lib”中。(有可能是我所用交叉编译器的原因) --------------------------------------------------------- 附录一: 【“./configure”与“make”的具体参数】 →1:zlib CC=arm-linux-gcc AR="arm-linux-ar rc "./configure --prefix=$PREFIX -shared →2:libpng CC=arm-linux-gcc ./configure --prefix=$PREFIX --host=arm-linux --build=i386-linux CFLAGS="-I$PREFIX/include" LDFLAGS="- L$PREFIX/lib" --disable-static →3:libjpeg CC=arm-linux-gcc ./configure --prefix=$PREFIX --host=arm-linux --build=i386-linux --exec-prefix=$PREFIX --disable-static make CC=arm-linux-gcc CXX=arm-linux-g++ AR="arm-linux-ar rc" STRIP=arm-linux-strip LD=arm-linux-ld RANLIB=arm-linux-ranlib AS=arm-linux-as NM=arm-linux-nm AR2=arm-linux-ranlib →4:freetype CC=arm-linux-gcc ./configure --prefix=$PREFIX --host=arm-linux --build=i386-linux --disable-static →5:DirectFB CC=arm-linux-gcc ./configure --prefix=$PREFIX --host=arm-linux --build=i386-linux CFLAGS="-I$PREFIX/include" LDFLAGS="- L$PREFIX/lib" CPPFLAGS="-I$PREFIX/include" --disable-x11 --enable-debug --disable-voodoo --disable-mmx --disable-see --disable-sdl --enable-jpeg --enable-png --disable-gif --enable-freetype --disable-video4linux --disable-video4linux2 --with-gfxdrivers=none -- with-tests →6:glib CC=arm-linux-gcc ./configure --host=arm-linux --build=i386-linux --prefix=$PREFIX →7:atk//wei zhi xing di er bu xiu gai CC=arm-linux-gcc ./configure --host=arm-linux --build=i386-linux --prefix=$PREFIX --disable-glibtest →8:libxml2 CC=arm-linux-gcc ./configure --host=arm-linux --build=i386-linux --prefix=$PREFIX --without-debug --disable-static →9:fontconfig CC=arm-linux-gcc ./configure --host=arm-linux --build=i386-linux --prefix=$PREFIX --with-freetype-config=$PREFIX/bin/freetype -config --disable-static --with-confdir=$PREFIX/etc/fonts --enable-libxml2 --with-arch=arm →10:cairo CC=arm-linux-gcc ./configure --host=arm-linux --build=i386-linux --prefix=$PREFIX --disable-xlib --enable-ps=yes --enable- png=yes --enable-directfb --disable-win32 --without-x --enable-freetype=yes --enable-pdf=yes --enable-svg=yes LDFLAGS="- L$PREFIX/lib" CFLAGS="-I$PREFIX/include" --disable-static →11:pango CC=arm-linux-gcc ./configure --host=arm-linux --build=i386-linux --prefix=$PREFIX --without-x LDFLAGS="-L$PREFIX/lib" CFLAGS="-I$PREFIX/include" --enable-pangocairo →12:gtk GLIB_GENMARSHAL=/usr/bin/glib-genmarshal PKG_CONFIG=/usr/bin/pkg-config CC=arm-linux-gcc ./configure --host=arm-linux -- build=i386-linux --prefix=$PREFIX --with-gdktarget=directfb --without-libtiff --disable-glibtest --disable-largefile --without- libjpeg --without-libpng 附录二:gdk_pixbuf.loaders 与 pango.modules 的问题 你必须要制造这两个配置文件,不然系统是无法运行的。制造的方法是,在编译完成后,执行"/bin"下的pango-querymodules > $PREFIX/etc/pango/pango.modules 来产生。 gdk_pixbuf.loaders 也是采用同样方法制造。 如果你实在搞不定的话,给我E-mail,我把我生成的这两个文件,发给你。 附录三:关于常见的问题,首先我建议你参考各个安装包里的 安装文档;然后你必须要对环境变量的设置小心翼翼,因为很多问题都是因为环境变量 问题导致的。还有在你动手之前,请务必保证你下载的这12个安装包必要是没有错误的,否则会做很多无用功的。:) 本文档,暂时就到这里了。如果你有问题,欢迎给我发E-mail。我会定期对此文档进行维护,最后我期待完成一份,新手都可以使用的“Step By Step”。不过步骤太多了,困难会比较大,其实我更想做一份手把手引导的“video”。这样会更容易“再显”我的工作。 希望这份文档对你有所帮助,祝你好运 |
1575

被折叠的 条评论
为什么被折叠?



