DirectFB+GTK交叉编译

编译平台:x86VMwareUbuntu-10.04

目标平台:SOC3210

交叉编译工具链:gcc-3.4.6(mipsel)

 

 

一、所需软件包:

 

1zlib-1.2.5.tar.bz2 

2freetype‐2.3.5.tar.bz2

3libpng-1.2.40.tar.bz2

4jpegsrc.v6b.tar.gz

5DirectFB-1.3.0.tar.gz

6DirectFB-examples-1.2.0.tar.gz

7libtool-1.5.26.tar.gz

8tiff-3.8.2.tar.gz

9libxml2-2.7.7.tar.gz

10expat-2.0.1.tar.gz

11fontconfig-2.4.2.tar.gz

12gettext-0.18.1.1.tar.gz

13glib-2.12.13.tar.gz

14atk-1.22.0.tar.gz

15cairo-1.4.10.tar.gz

16pango-1.16.4.tar.bz2

17gtk+-2.10.14.tar.bz2 

 

 

二、编译步骤:

 

1搭建交叉编译工具链

$tar zxvf gcc-3.4.6.tgz -C /opt

$export PATH=/opt/gcc-3.4.6/bin:$PATH

如果需要在另外的终端和重启机子后都包含这环境变量的话,可以把/opt/gcc-3.4.6/bin: 添加到/etc/environment文件下,然后打开新终端或重启虚拟机。

 

2、在终端下输入

$mkdir /usr/directfb-gtk

$export PREFIX=/usr/directfb-gtk

$export LDFLAGS=-L$PREFIX/lib 

$export CFLAGS="-g -I$PREFIX/include" 

$export CPPFLAGS="-g -I$PREFIX/include"

$export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig

 

3、zlib-1.2.5

$tar jxvf zlib-1.2.5.tar.bz2 

$cd zlib-1.2.5

$./configure  --prefix=$PREFIX  --shared   

——不能加--host=mipsel-linux”,否则出错。

$vi Makefile
——Makfile里的gccarranlib全都替换成mipsel-linux-gccmipsel-linux-ar mipsel-linux-ranlib

$make

$make install

4、freetype‐2.3.5

$tar jxvf freetype‐2.3.5.tar.bz2

$cd freetype‐2.3.5

$./configure  --build=i686-pc-linux-gnu  --host=mipsel-linux --target=mipsel-linux --prefix=$PREFIX

$make

$make install

 

5、libpng-1.2.40

$tar jxvf libpng-1.2.40.tar.bz2

$cd libpng-1.2.40

$./configure  --host=mipsel-linux  --prefix=$PREFIX  --with-gnu-ld

$make

$make install

 

6jpegsrc.v6b

$tar zxvf jpegsrc.v6b.tar.gz

$cd jpeg-6b

$./configure  --host=mipsel-linux  --prefix=$PREFIX  --enable-shared

$vi Makefile

——Makefile里的gcc替换成mipsel-linux-gcc

$make

$make install

出错提示:

无法创建普通文件"/usr/directfb/man/man1/cjpeg.1"

参考解决:

mkdir /usr/directfb-gtk/man /usr/directfb-gtk/man/man1

$make install

 

7DirectFB-1.3.0

$tar zxvf DirectFB-1.3.0.tar.gz

$cd DirectFB-1.3.0

$./configure --prefix=$PREFIX --host=mipsel-linux --enable-sdl=no --enable-x11=no --enable-jpeg  --enable-freetype  --enable-png  --with-gfxdrivers=none

参考:如果需要关闭jpeg的支持,可以加上--enable-jpeg=no
这里设置的DirectFB的安装路径是/usr/directfb,那么在目标系统中也必须保证DirectFB是在这样的一个目录中。因为DirectFB编译时已经把这个目录编译到程序中,无法后期设置。
$make

注意:可能会有出错提示

/opt/gcc-3.4.6/bin/../lib/gcc/mipsel-linux/3.4.6/../../../../mipsel-linux/b in/ld: warning:  libz.so.1,  needed by /usr/directfb/lib/libpng12.so, not  found (try using -rpath or  -rpath-link)

/usr/directfb/lib/libpng12.so: undefined reference to `deflate'

/usr/directfb/lib/libpng12.so: undefined reference to `inflate'

/usr/directfb/lib/libpng12.so: undefined reference to `inflateInit_'

/usr/directfb/lib/libpng12.so: undefined reference to `crc32'

/usr/directfb/lib/libpng12.so: undefined reference to `deflateInit2_'

/usr/directfb/lib/libpng12.so: undefined reference to `inflateReset'

/usr/directfb/lib/libpng12.so: undefined reference to `deflateReset'

/usr/directfb/lib/libpng12.so: undefined reference to `inflateEnd'

/usr/directfb/lib/libpng12.so: undefined reference to `deflateEnd'

collect2: ld returned 1 exit status

make[2]: *** [directfb-csource] 错误 1

make[2]:正在离开目录 `/******/DirectFB-1.3.0/tools'

 

参考解决办法:

$cp /usr/directfb-gtk/lib/lib* /opt/gcc-3.4.6/mipsel-linux/lib/

——主要是用第五步的libpng-1.2.40所编译出来的库文件

来更新交叉编译工具链的动态库文件libpng12.so

$make install

 

8DirectFB-examples-1.2.0

$tar zxvf DirectFB-examples-1.2.0.tar.gz

$cd DirectFB-examples-1.2.0

$./configure  --host=mipsel-linux  --prefix=$PREFIX

$make

$make install

 

 

9libtool-1.5.26.tar.gz

./configure  --prefix=$PREFIX  --host=mipsel-linux

make && make install

 

10tiff-3.8.2.tar.gz

./configure  --prefix=$PREFIX  --build=i686-pc-linux-gnu  --host=mipsel-linux 

--target=mipsel-linux --enable-jpeg --enable-shared --without-x

make && make install

 

11libxml2-2.7.7.tar.gz

./configure  --prefix=$PREFIX  --host=mipsel-linux

出错提示:

/bin/rm: cannot remove `libtoolT': No such file or directory

Done configuring

vi   libtoolT  保存退出。

make && make install

 

12expat-2.0.1.tar.gz

./configure  --prefix=$PREFIX  --host=mipsel-linux

make 

 make install

 

13fontconfig-2.4.2.tar.gz

./configure  --prefix=$PREFIX  --host=mipsel-linux --target=mipsel-linux --build=i686-pc-linux-gnu  --enable-libxml2  --with-arch=mipsel

--with-freetype-config=$PREFIX/bin/freetype-config

make 

 make install

 

14、安装本机gettext-0.18.1.1.tar

----为了解决glib依赖库的问题

./configure  --prefix=/usr

make&&make install

 

15、安装本机glib

apt-cache search glib

apt-get install libglib2.0-dev

 

 

16、 glib-2.12.13.tar

   # echo  ac_cv_type_long_long=yes>>mipsel-linux.cache

   # echo  glib_cv_long_long_format=11>>mipsel-linux.cache

   # echo  glib_cv_stack_grows=no>>mipsel-linux.cache

   # echo  glib_cv_uscore=no>>mipsel-linux.cache

   # echo  ac_cv_func_posix_getpwuid_r=yes>>mipsel-linux.cache

   # echo ac_cv_have_abstract_sockets=yes>mipsel-linux.cache

   # ./configure  --prefix=$PREFIX --cache-file=mipsel-linux.cache  

--build=i686-pc-linux-gnu  --host=mipsel-linux  --target=mipsel-linux

 

如果没有安装本机的gettext可能有出错提示:

checking for msgfmt... no

configure: error:

*** You must have either have gettext support in your C library, or use the

*** GNU gettext library. (http://www.gnu.org/software/gettext/gettext.html

 

如果没有安装本机glib可能有出错提示

checking for glib-genmarshal... no

configure: error: Could not find a glib-genmarshal in your PATH

 

make 

make install

 

17atk-1.22.0.tar

./configure  --prefix=$PREFIX  --host=mipsel-linux  --build=i686-pc-linux-gnu

make 

make install

 

 

18cairo-1.4.10.tar.gz

./configure  --prefix=$PREFIX  --host=mipsel-linux --target=mipsel-linux  --enable-directfb  --disable-xlib  --disable-xlib-xrender --disable-win32  --enable-png  --enable-freetype  --disable-svg    --without-x  --enable-pdf  --enable-ps

                      //也可以去掉--enable-pdf  --enable-ps

 

make

make install

 

 

19、pango-1.16.4.tar.bz2

Vi configure.in

have_cairo=true 

have_cairo_png=true 

have_cairo_ps=true 

have_cairo_pdf=true 

have_cairo_freetype=true 

 

修改/usr/directfb-gtk/lib/pkgconfig中的cairo.pc,在第9行添加一行“Requires : freetype2 fontconfig  directfb  direct  libpng12  fusion  libxml-2.0

 

   ./configure  --prefix=$PREFIX  --host=mipsel-linux  --with-arch=mipsel  --without-x

--build=i686-pc-linux-gnu  --target=mipsel-linux  --enable-cairo

 

可能出错提示:

configure: error: *** Didn't find any of FreeType, X11, ATSUI or Win32.

*** Must have at least one backend to build Pango.

 

添加:export FREETYPE_CONFIG=$PREFIX/bin/freetype-config

 

 

 

make 

make install

 

 

19、gtk+-2.10.14.tar.bz2 

 

修改/home/DFB-1.3/lib/pkgconfig中的pangocairo.pc,在第9Requires里面添加pangoft2

 

./configure  --prefix=$PREFIX  --build=i686-pc-linux-gnu  --host=mipsel-linux  --without-x  --with-gdktarget=directfb  --with-libpng  --with-libtiff  --with-libjpeg "LDFLAGS=-L$PREFIX/lib -ltiff -ltiffxx"

 

 

版本问题:

vi gdk/directfb/gdkcursor-directfb.c 

添加定义

#define __u32 u32

#define __u8 u8

 

 

make 

 

可能出错提示:

making all in demos

make[2]: 正在进入目录 `/huang/gtk/gtk+-2.10.14/demos'

no --raw --build-list /

        apple_red  ./apple-red.png /

                gnome_foot ./gnome-foot.png /

        > test-inline-pixbufs.h /

|| (rm -f test-inline-pixbufs.h && false)

/bin/bash: no:找不到命令

make[2]: *** [test-inline-pixbufs.h] 错误 1

make[2]:正在离开目录 `/huang/gtk/gtk+-2.10.14/demos'

 

参考:http://www.docin.com/p-44613303.html  豆丁网

 

$apt-get install libghc6-gtk-dev

——A GUI library for Haskell (Gtk2Hs) -- GTK+ bindings

-----$apt-get install libgdk-pixbuf2

-----$apt-get install libgdk-pixbuf2-dev 这两安装不了

 

$vi demos/Makefile

GDK_PIXBUF_CSOURCE = no

GDK_PIXBUF_CSOURCE = /usr/bin/gdk-pixbuf-csource

保存退出。

或者安装本机的GTK,也会生成gdk-pixbuf-csource文件。

 

 

make

make install

 

至此交叉编译完成。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
交叉编译libx加GTK+2.1时候用到库各个库文件的集合,不用花费时间网上一个一个下载,已经经过本人亲测试实测,还可以编译GTK+directFB 1.1 libs_for_gtk Dir: atk-1.25.2.tar.gz atk-1.26.0.tar.gz bigreqsproto-1.1.2.tar.bz2 cairo-1.8.6.tar.gz CPAN-1.94.tar.gz DirectFB-1.1.1.tar.gz expat-2.0.1.tar.gz expat-2.1.0.tar.gz ExtUtils-MakeMaker-6.20.tar.gz fontconfig-2.4.2.tar.gz fontconfig-2.6.0.tar.gz fontconfig-2.7.3.tar.gz freetype-2.3.5.tar.bz2 freetype-doc-2.3.6.tar.bz2 glib-2.12.1.tar.bz2 glib-2.14.4.tar.gz glib-2.18.2.tar.bz2 glibc-2.2.5.tar.bz2 gtk+-2.10.14.tar.bz2 gtk+-2.10.7.tar.bz2 gtk+-2.12.12.tar.bz2 inputproto-2.2.tar.bz2 jpegsrc.v6b.rar jpegsrc.v6b.tar.gz kbproto-1.0.6.tar.bz2 libpng-1.2.10.tar.bz2 libpng-1.2.32.tar.lzma libpthread-stubs_0.1.orig.tar.gz libtool-1.5.22.tar.gz libtool-2.4.2.tar.xz libX11-1.0.3.tar.bz2 libX11-1.2.2.tar.bz2 libX11-1.3.2.tar.gz libX11-1.5.0.tar.bz2 libXau-1.0.7.tar.bz2 libXau-1.0.8.tar.bz2 libxcb-1.3.tar.bz2 libxcb-1.4.tar.bz2 libxcb-1.8.1.tar.bz2 libXdmcp-1.0.3.tar.gz libXdmcp-1.1.2.tar.bz2 libXext-1.0.1.tar.bz2 libXfont-1.4.4.tar.bz2 libXft-2.1.12.tar.bz2 libXft-2.1.13.tar.bz2 libxml2-2.6.30.tar.gz libxml2-2.6.32.tar.gz libxslt-1.1.29.tar.gz libXt-1.0.6.tar.bz2 pango-1.16.4.tar.bz2 pango-1.18.2.tar.gz pango-1.22.1.tar.bz2 pango-1.24.4.tar.bz2 pixman-0.24.0.tar.bz2 poky-pinky-3.1.1.tgz stubs-soft.h tiff-3.8.2.tar.gz tiff-4.0.7.tar.gz tslib-1.4.tar.gz xcb-proto-1.7.1.tar.bz2 xcmiscproto-1.1.2.tar.bz2 xcmiscproto-1.2.2.tar.bz2 xextproto-7.2.1.tar.bz2 xorg-server-1.3.0.0.tar.bz2 xorg-server-1.4.2.tar.bz2 xproto-7.0.23.tar.bz2 xtrans-1.2.7.tar.bz2 zlib-1.2.3.rar zlib-1.2.3.tar.gz zlib-1.2.5.tar.gz
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值