Chinaunix首页 | 论坛 | 博客
  • 博客访问: 971076
  • 博文数量: 261
  • 博客积分: 10026
  • 博客等级: 上将
  • 技术积分: 3420
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-24 12:10
个人简介

https://smart888.taobao.com/ 立观智能监控

文章分类

全部博文(261)

文章存档

2011年(1)

2010年(4)

2009年(256)

我的朋友

分类: LINUX

2009-04-16 11:05:14

因为Linux下开源的东西会存在一些版本更新和匹配的问题,可能每次配置同一个环境,会出现各种不同的意外情况。所以为了避免不必要的麻烦,我将这个过程作为一个标准化流程。每次都严格按照指导来做。

发到这里希望给刚刚要开始研究的人提供方便,不用到网上到处搜罗那些零碎的东西。
更重要的是希望发挥广大群众的力量,发现其中的bug,或者社区最新的一些能够解决特定问题的patch。


一步一步搭建GTK-DFB开发环境

Jiazhen

2008年7月4日


0. 概要


    GTK-DFB环境存在于GDK库中,它整合了GTK+工具集和DirectFB视窗系统,就像GTK-X11整合了GTK和X11,GDK-WIN32也起到了Windows GDI一样的作用。GTK-DFB主要面向嵌入式应用程序,而不是桌面应用程序。它不具备像X11或者GDK-WIN32那样全面的功能,却也足够开发复杂的应用程序,比如Linux下的画图工具GIMP。

    下面主要介绍GTK-DFB开发环境的搭建。

※注意:

这里可以将GTKDFB安装到/usr/local/dfb目录下面,以免和系统中已经存在的X11和DFB应用程序相冲突。GTKDFB的运行依赖于以下开发库:

jpeg libpng pkg-config gettext glib atk freetype DirectFB

libexpat fontconfig pixman cairo pango gtk libIDL

※准备:

需要创建以下目录

  • mkdir /usr/local/dfb
  • mkdir -p /usr/local/dfb/man/man1
  • mkdir /usr/local/dfb/bin
  • mkdir /usr/local/dfb/lib
  • mkdir /usr/local/dfb/etc
  • mkdir /usr/local/dfb/include
  • mkdir /usr/local/dfb/info
  • mkdir /usr/local/dfb/sbin
  • mkdir /usr/local/dfb/share
  • mkdir /usr/local/dfb/src

在终端设置以下的环境变量,也可以写成脚本文件,如/root/export.sh

#!/bin/bash

export LD_LIBRARY_PATH=/usr/local/dfb/lib

export PATH=/usr/local/dfb/bin/PATH

export PKG_CONFIG_PATH=/usr/local/dfb/lib/pkgconfig

每次打开终端只需执行

#source /root/export.sh




1. GTK-DFB环境搭建


       以下是我们需要安装的开发包,有详细的下载地址。有些版本可能有更新。希望尝试不同版本,碰到不同问题的人们,能够跟进补充。这里介绍的是已经测试通过的情况。



1.1 安装jpeg

  • Package Name: jpegsrc.v6b.tar.gz
  • Download URL:
  • Installation:
    • tar -xzvf jpegsrc.v6b.tar.gz
    • cd jpeg-6b
    • ./configure --prefix=/usr/local/dfb --without-x --enable-shared --without-libjasper
    • make
    • make install

1.2. 安装tiff

  • Package Name: tiff-3.7.4.tar.gz
  • Download URL:
  • Installation:
    • tar zxvf tiff-3.7.4.tar.gz
    • cd tiff-3.7.4
    • ./configure --prefix=/usr/local/dfb --without-x
    • make
    • make install

1.3 安装libpng

  • Package Name: libpng-1.2.29.tar.bz2
  • Download URL:
  • Installation:
    • tar jxvf libpng-1.2.29.tar.bz2
    • cd libpng-1.2.29
    • cp ./scripts/makefile.linux ./Makefile
    • Change “prefix=/usr/local” to “prefix=/usr/local/dfb” (line no 31) in Makefile manually
    • make
    • make install

1.4 安装pkg-config []

  • Package Name: pkg-config-0.22.tar.gz
  • Download URL:
  • Installation:
    • tar zxvf pkg-config-0.22.tar.gz
    • cd pkg-config-0.22
    • ./configure --prefix=/usr/local/dfb --without-x
    • make
    • make install

1.5 安装gettext

  • Package Name: gettext-0.17.tar.gz
  • Download URL:
  • Installation:
    • tar zxvf gettext-0.17.tar.gz
    • cd gettext-0.17
    • ./configure --prefix=/usr/local/dfb
    • make
    • make install

Note: This package might not be required.

1.6 安装glib []

  • Package Name: glib-2.16.3.tar.bz2
  • Download URL:
  • Installation:
    • tar jxvf glib-2.16.3.tar.bz2
    • cd glib-2.16.3
    • ./configure --prefix=/usr/local/dfb
    • make
    • make install

1.7 安装atk []

  • Package Name: atk-1.13.2.tar.bz2
  • Download URL:
  • Installation
    • tar jxvf atk-1.13.2.tar.bz2
    • cd atk-1.13.2
    • ./configure --prefix=/usr/local/dfb
    • make
    • make install

1.8 安装freetype []

  • Package Name: freetype-2.3.5.tar.bz2
  • Download URL:
  • Installation:
    • tar jxvf freetype-2.3.5.tar.bz2
    • cd freetype-2.3.5
    • ./configure --prefix=/usr/local/dfb --without-x --enable-directfb --disable-xlib --disable-win32
    • make
    • make install

1.9 安装DirectFB []

  • Package Name: DirectFB-1.1.1.tar.gz
  • Patches: Download following patches and apply to the source.
  • Download URL:
  • Installation:
    • apt-get install libsdl1.2-dev
    • tar zxvf DirectFB-1.1.1.tar.gz
    • cd DirectFB-1.1.1
    • ./configure --prefix=/usr/local/dfb --enable-sdl
    • make
    • make install

After installing DirectFB, set it up to run over SDL on X11.

  • Create .directfbrc under home directory.
  • Add following lines to .directfbrc
    • wm=default
    • mode=800x600
    • depth=32
    • system=sdl
  • As root user, run the following command
    • touch /usr/local/dfb/lib/libgdk-x11-2.0.so.0

1.10 安装libexpat

  • Package Name: expat-2.0.1.tar.gz
  • Download URL:
  • Installation:
    • tar zxvf expat-2.0.1.tar.gz
    • cd expat-2.0.1
    • ./configure --prefix=/usr/local/dfb
    • make
    • make install

1.11 安装fontconfig

  • Package Name: fontconfig-2.4.91.tar.gz
  • Download URL:
  • Installation:
    • tar fontconfig-2.4.91.tar.gz
    • cd fontconfig-2.4.91
    • ./configure --prefix=/usr/local/dfb --without-x --enable-directfb --disable-xlib --disable-win32
    • make
    • make install

1.12 安装pixman

  • Package Name: pixman-0.10.0.tar.gz
  • Download URL:
  • Installation:
    • tar -zxvf pixman-0.10.0.tar.gz
    • cd pixman-0.10.0
    • ./configure --prefix=/usr/local/dfb
    • make
    • make install

1.13 安装cairo

1.14 安装pango

  • Package Name: pango-1.20.2.tar.bz2
  • Download URL:
  • Installation:
    • tar jxvf pango-1.20.2.tar.bz2
    • cd pango-1.20.2
    • ./configure --prefix=/usr/local/dfb --enable-cairo --without-x --disable-xlib --disable-win32
    • make
    • make install

1.15 安装gtk

1.16 安装libIDL

  • Package Name: libIDL-0.8.5.tar.bz2
  • Download URL:
  • Installation:
    • tar jxvf libIDL-0.8.5.tar.bz2
    • cd libIDL-0.8.5
    • apt-get install flex
    • apt-get install bison
    • ./configure --prefix=/usr/local/dfb
    • make
    • make install



2.测试GTK-DFB环境


    首先设置环境变量,如果之前写好了脚本export.sh 可以在终端直接执行:

#source export.sh

或者一步一步执行:

#export LD_LIBRARY_PATH=/usr/local/dfb/lib

#export PATH=/usr/local/dfb/bin/PATH

#export PKG_CONFIG_PATH=/usr/local/dfb/lib/pkgconfig

    之前安装了GTK开发包,默认情况下,它自动编译了示例程序,这里可以直接运行:

#/usr/local/dfb/bin/gtk-demo

正常的话,就会看见在蓝色(也可能是别的颜色)的背景下弹出GTK窗口。会发现GTK窗口的边框消失了,看不见标题栏,最大化及最小化按钮了。这是因为没有用到到窗口管理器。但是DFB提供了一些简单的消息处理。

Meta + Mouse 可以移动窗口

Meta + C 可以关闭窗口

Meta + X + Mousr Movement   可以改变窗口的层叠顺序

提示:Meta键就是我们常说的Windows键,键盘上那个带Windows图标的就是。




3. 小结


以上是GTK-DFB环境的搭建和简单测试。因为开源软件的更新和维护非常的频繁,所以我们需要注意到各个版本的更新,有时候需要及时打上补丁。当然最快捷的方式依照前人实际测试通过的环境来进行。

为了进一步熟悉环境,我们可以尝试运行GIMP,Mozilla-dfb等经典应用实例。


阅读(2493) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~