Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9149405
  • 博文数量: 1727
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 19860
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1727)

文章存档

2024年(2)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: LINUX

2009-06-18 15:14:09

DirectFB+GTK+在电脑和开发板上分别如何配置编译环境和运行环境?
这方面的入门资料基本没有,都要到国外的网站找,我刚学,现在把思路理一下,争取在两个星期内上手,以后每天都写一下心得。
[提纲]
1:先在pc上搞定编译环境
2:自己写一个DirectFB+GTK+的程序在pc上运行
3:在开发板上做好运行环境
4:交叉编译自己写的程序,放到开发板上运行
注:我的操作系统是ubuntu7.04。

1:先在pc上搞定编译环境
第一步,完成显示环境
是电脑使用Framebuffer,打开文件/boot/grub/menu.lst,作如下改动
/*********************************************************************/
title                Ubuntu, kernel 2.6.20-16-generic
root                (hd0,6)
kernel                /boot/vmlinuz-2.6.20-16-generic root=UUID=0785b5ff-fcb4-4507-a602-2bfed2290ec5 ro quiet splash vga=792   /*增加vga=792(代表分辨率为1024*768 32位色) */
initrd                /boot/initrd.img-2.6.20-16-generic
quiet
savedefault

title                Ubuntu, kernel 2.6.20-16-generic (recovery mode)
root                (hd0,6)
kernel                /boot/vmlinuz-2.6.20-16-generic root=UUID=0785b5ff-fcb4-4507-a602-2bfed2290ec5 ro single vga=792         /*增加vga=792 (代表分辨率为1024*768 32位色) */
initrd                /boot/initrd.img-2.6.20-16-generic
/**************************************************************************/
第二步,安装相关软件包
需要这些软件包:GTK+,Cairo,GLib,Pange,ATK
下面先装3个
apt-get install libglib2.0-0 libglib2.0-dev libatk1.0-0 libatk1.0-dev libpango1.0-0 libpango1.0-dev libdirectfb-0.9-25 libdirectfb-dev
注:设置环境变量:当然最好在/etc/bash.bashrc中设置一下
export PREFIX=/usr/gtkdfb
export LD_LIBRARY_PATH=$PREFIX/lib
export PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig
export CFLAGS="-g"
再装cairo
mkdir -p $PREFIX/src
cd $PREFIX/src
wget
tar -xvzf cairo-1.4.6.tar.gz
cd cairo-1.4.6
sh configure --prefix=$PREFIX --enable-directfb --disable-xlib --disable-win32
make
make install
最后装GTK-DFB
cd $PREFIX/src
wget
tar -xvjf gtk+-2.10.13.tar.bz2
cd gtk+
./configure --prefix=$PREFIX --with-gdktarget=directfb --without-x
make
make install
好了终于在ubuntu7.04上安装完毕了。
第三步,自然是要测试一下
再设置个环境变量
export LD_LIBRARY_PATH=/usr/gtkdfb/lib
大家找一下示例程序,在这里
/usr/gtkdfb/bin/gtk-demo,
ok!运行它你可以看到效果了。

2:自己写一个DirectFB+GTK+的程序可以在pc上运行
写一个GTK的程序,如下:
#include

/* 我们新改进的回调函数。传递到该函数的数据将打印到标准输出(stdout)。*/
void callback( GtkWidget *widget,
               gpointer   data )
{
    g_print ("Hello again - %s was pressed\n", (gchar *) data);
}

/* 另一个回调函数 */
gint delete_event( GtkWidget *widget,
                   GdkEvent  *event,
                   gpointer   data )
{
    gtk_main_quit ();
    return FALSE;
}

int main( int   argc,
          char *argv[] )
{
    /* GtkWidget 是构件的存储类型 */
    GtkWidget *window;
    GtkWidget *button;
    GtkWidget *box1;

    /* 这个函数在所有的 GTK 程序都要调用。参数由命令行中解析出来并且送到该程序中。*/
    gtk_init (&argc, &argv);

    /* 创建一个新窗口 */
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    /* 这是一个新的调用,设置窗口标题为"Hello Buttons!" */
    gtk_window_set_title (GTK_WINDOW (window), "Hello Buttons!");

    /* 在这里我们为 delete_event 设置了一个处理函数来立即退出 GTK。*/
    g_signal_connect (G_OBJECT (window), "delete_event",
                      G_CALLBACK (delete_event), NULL);

    /* 设置窗口边框的宽度。 */
    gtk_container_set_border_width (GTK_CONTAINER (window), 10);

    /* 我们创建了一个组装盒。详情参见“组装”章节。
     * 我们看不见组装盒,它仅被作为排列构件的工具。*/
    box1 = gtk_hbox_new (FALSE, 0);

    /* 把组装盒放入主窗口中。*/
    gtk_container_add (GTK_CONTAINER (window), box1);

    /* 创建一个标签为 "Button 1" 的新按钮。*/
    button = gtk_button_new_with_label ("Button 1");
   
    /* 当按钮被按下时,我们调用 "callback" 函数,并将一个指向 "button 1" 的
     * 指针作为它的参数。*/
    g_signal_connect (G_OBJECT (button), "clicked",
                      G_CALLBACK (callback), "button 1");

    /* 代替 gtk_container_add,我们把按钮放入不可见的组装盒,该组合盒已经组
     * 装进窗口中了。*/
    gtk_box_pack_start (GTK_BOX(box1), button, TRUE, TRUE, 0);

    /* 总是记住这一步,它告诉 GTK 我们为这个按钮做的准备工作已经完成了,现
     * 在可以显示它了。*/
    gtk_widget_show (button);

    /* 同样创建第二个按钮。*/
    button = gtk_button_new_with_label ("Button 2");

    /* 以不同的参数调用相同的回调函数,用指向 "button 2" 的指针代替。*/
    g_signal_connect (G_OBJECT (button), "clicked",
                      G_CALLBACK (callback), "button 2");

    gtk_box_pack_start(GTK_BOX (box1), button, TRUE, TRUE, 0);

    /* 显示的顺序并不重要,但我建议最后显示窗口。这样它们会同时显示出来。*/
    gtk_widget_show (button);

    gtk_widget_show (box1);

    gtk_widget_show (window);
   
    /* 停在这里等待事件发生。*/
    gtk_main ();

    return 0;
}
这是一个简单的程序哈!!下面我来编译他
先还是看看自己的库,运行如下命令,就可以看到库了
freedom@freedom-desktop:~$ pkg-config --cflags gtk+-2.0
-D_REENTRANT -I/usr/gtkdfb/include/gtk-2.0 -I/usr/gtkdfb/lib/gtk-2.0/include -I/usr/gtkdfb/include/cairo -I/usr/include/directfb -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
freedom@freedom-desktop:~$ pkg-config --libs gtk+-2.0
-L/usr/gtkdfb/lib -lgtk-directfb-2.0 -lgdk-directfb-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
好了库都是正确的,可以编译了,
gcc helloworld.c -o helloworld `pkg-config --cflags --libs gtk+-2.0`
这样有helloworld生成了,
测试一下吧,现在进入tty0,到该目录下,运行
./helloworld
ok看到两个小按钮,运行成功了!!!

先发这么多,下面的内容涉及到文件系统的制作我等会儿发,望不吝赐教,谢谢大家!
作者: echo    时间: 2007-10-30 09:58     标题: 回复

大哥,你太有才了,呵呵
作者: freeubuntu    时间: 2007-11-5 16:24

3:在开发板上做好运行环境
第一步,要交叉编译所有的库;第二步,把库传到目标机上;
注:arm是s3c2440,内核是linux2.6.12,文件系统cramfs(这个文件系统是别人做好的,上面有个tmp文件夹用来存放各种库,当然自己用其他的文件系统(如jffs)也是可以的),使用NFS文件系统把交叉编译好的库上传到目标机上。

第一步,要交叉编译所有的库
搭建交叉编译环境

下载arm-linux-gcc-3.4.1.tar.bz2放到根目录下
cd /
tar jxvf arm-linux-gcc-3.4.1.tar.bz2
export PATH=/usr/local/arm/3.4.1/binPATH

今天下了很多包,要把核心包和依赖包之间的关系搞清楚
根据pc上的经验核心包有6个,分别如下:
glib-2.12.13,atk-1.19.3,pango-1.16.4,DirectFB-1.1.0,cairo-1.4.10,gtk+-2.10.14
打开他们的README和INSTALL文件查看他们的依赖包,分别如下:
glib-2.12.13      依赖包: 无
atk-1.19.3        依赖包:glib-2.12.13
pango-1.16.4      依赖包:glib-2.12.13,fontconfig-2.4.2 ,cairo-1.4.10
DirectFB-1.1.0    依赖包:freetype-2.3.5,,jpegsrc.v6b,libpng-1.2.19,zlib-1.2.3,pkg-config-0.20(建议安装)               
                        expat-2.0.1,libxml2-2.6.29
cairo-1.4.10      依赖包:freetype-2.3.5,zlib-1.2.3。注:这个和前端后端有关,最好自 己看一下README文件
gtk+-2.10.14      依赖包:atk-1.9.1,cairo-1.2.6,jpegsrc.v6b,libpng-1.2.8,                        
                        pkg-config-0.20,tiff-3.7.4。注:这个在
                        有说明。
宗上所述,需要依赖包如下:fontconfig-2.4.2,freetype-2.3.5,,jpegsrc.v6b,libpng-1.2.19,zlib-1.2.3,pkg-config-0.20,tiff-3.7.4,expat-2.0.1

现在对其进行交叉编译。
所有源文件都在/home/freedom/Desktop/gtkfb/library内,里面有两个文件夹,geng(存放核心包解压的原文 件),yilai(存放依赖包解压的原文件)。建一个文件夹/home/freedom/Desktop/armhome用来作为存放目标板上库文件的文 件夹。
注:先编译依赖库
现在把要交叉编译的包排一下序,glib-2.12.13-->atk-1.19.3-->zlib-1.2.3-->jpegsrc.v6b-->libpng-1.2.19-->expat-2.0.1
-->freetype-2.3.5-->libxml2-2.6.29-->fontconfig-2.4.2-->tiff-3.7.4-->DirectFB-1.1.0-->cairo-1.4.10-->pango-1.16.4
-->gtk+-2.10.14
1,交叉编译glib-2.12.13
#cd /home/freedom/Desktop/gtkfb/library/geng/glib-2.12.13
#echo ac_cv_type_long_long=yes>arm-linux.cache
#echo glib_cv_stack_grows=no>>arm-linux.cache
#echo glib_cv_uscore=no>>arm-linux.cache
#echo ac_cv_func_posix_getpwuid_r=yes>>arm-linux.cache
#./configure --host=arm-linux --prefix=/home/freedom/Desktop/armhome/usr\
--cache-file=arm-linux.cache
#make && make install
在/home/freedom/Desktop/armhome/usr生成了4个文件夹(bin,include,lib,share),
编译成功!

2,交叉编译atk-1.19.3
#cd /home/freedom/Desktop/gtkfb/library/geng/atk-1.19.3
#./configure --host=arm-linux --prefix=/home/freedom/Desktop/armhome/usr
修改/, /atk和/tests中的makefile文件中的变量,如下:
DEP_CFLAGS = -pthread -I/home/freedom/Desktop/armhome/usr/local/include/glib-2.0 \
  -I/home/freedom/Desktop/armhome/usr/lib/glib-2.0/include
DEP_LIBS = -L/home/freedom/Desktop/armhome/usr/lib \
  -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
GLIB_CFLAGS = -I/home/freedom/Desktop/armhome/usr/include/glib-2.0 \
  -I/home/freedom/Desktop/armhome/usr/lib/glib-2.0/include
GLIB_LIBS = -L/home/freedom/Desktop/armhome/usr/lib -lgobject-2.0 \
  -lgmodule-2.0 -ldl -lglib-2.0
#make && make install
编译成功!

3,交叉编译zlib-1.2.3
#cd /home/freedom/Desktop/gtkfb/library/yilai/zlib-1.2.3
#CC=arm-linux-gcc ./configure --prefix=/home/freedom/Desktop/armhome/usr\
--shared
#make && make install
编译成功!

4,交叉编译jpeg-6b
#cd /home/freedom/Desktop/gtkfb/library/yilai/jpeg-6b
#CC=arm-linux-gcc ./configure --prefix=/home/freedom/Desktop/armhome/usr\
--host=arm-linux --enable-shared

5,交叉编译libpng-1.2.19
#cd /home/freedom/Desktop/gtkfb/library/yilai/libpng-1.2.19
#export LDFLAGS=-L/home/freedom/Desktop/armhome/usr/lib
#export CFLAGS=-I/home/freedom/Desktop/armhome/usr/include
#./configure --prefix=/home/freedom/Desktop/armhome/usr\
--host=arm-linux
#make && make install
编译成功!

6,交叉编译expat-2.0.1
#cd /home/freedom/Desktop/gtkfb/library/yilai/expat-2.0.1
#./configure --prefix=/home/freedom/Desktop/armhome/usr\
--host=arm-linux
#make && make install
编译成功!

7,交叉编译freetype-2.3.5
#cd /home/freedom/Desktop/gtkfb/library/yilai/freetype-2.3.5
#./configure --prefix=/home/freedom/Desktop/armhome/usr\
--host=arm-linux
#make && make install
又多了点文件,编译成功!

8,交叉编译libxml2-2.6.29
#cd /home/freedom/Desktop/gtkfb/library/yilai/libxml2-2.6.29
#./configure --prefix=/home/freedom/Desktop/armhome/usr\
--host=arm-linux
#make && make install
又多了点文件,编译成功!

9,交叉编译fontconfig-2.4.2(这个地方碰到困难有路径问题,编译完成但是有一个警告)
#cd /home/freedom/Desktop/gtkfb/library/yilai/fontconfig-2.4.2
#export LDFLAGS=-L/home/freedom/Desktop/armhome/usr/lib
#export CFLAGS=-I/home/freedom/Desktop/armhome/usr/include
#export LIBXML2_CFLAGS=-I/home/freedom/Desktop/armhome/usr/include/libxml2
#export LIBXML2_LIBS=/home/freedom/Desktop/armhome/usr/lib/libxml2.so
#export FREETYPE_CFLAGS=-I/home/freedom/Desktop/armhome/usr/include/freetype2
#export FREETYPE_LIBS=/home/freedom/Desktop/armhome/usr/lib/libfreetype.so

#export CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
#export AR=/usr/local/arm/3.4.1/bin/arm-linux-ar
#export LD=/usr/local/arm/3.4.1/bin/arm-linux-ld
#export RANLIB=/usr/local/arm/3.4.1/bin/arm-linux-ranlib
#export CXX=/usr/local/arm/3.4.1/bin/arm-linux-g++
#export FREE_TYPE_PATH=/home/freedom/Desktop/armhome/usr/bin/freetype-config
./configure --host=arm-linux --build=i386-linux --prefix=/home/freedom/Desktop/armhome/usr --with-freetype-config=/home/freedom/Desktop/armhome/usr/bin/freetype-config --with-confdir=/home/freedom/Desktop/armhome/etc/fonts --enable-libxml2 --with-arch=arm
#make && make install
编译完成但是有一个警告!!!不知道是否有影响

10,交叉编译tiff-3.7.4
#cd /home/freedom/Desktop/gtkfb/library/yilai/tiff-3.7.4
#./configure --prefix=/home/freedom/Desktop/armhome/usr\
--host=arm-linux
#make && make install
又多了点文件,编译成功!
还有几个大头没搞定,我再努把力!!!!
作者: freeubuntu    时间: 2007-11-5 18:29

4,交叉编译jpeg-6b
要手动建一个文件夹
#mkdir /home/freedom/Desktop/armhome/usr/man
#mkdir /home/freedom/Desktop/armhome/usr/man/man1
#cd /home/freedom/Desktop/gtkfb/library/yilai/jpeg-6b
#CC=arm-linux-gcc ./configure --prefix=/home/freedom/Desktop/armhome/usr --host=arm-linux
#make && make install
编译成功!
作者: freeubuntu    时间: 2007-11-23 14:10

已经交叉编译完毕了,挺多内容的,过段时间发
作者: freeubuntu    时间: 2007-11-27 08:19

11,交叉编译DirectFB-1.1.0
#cp -a /mnt/usr/lib/pkgconfig/freetype* /usr/lib/pkgconfig/
#cp -a /mnt/usr/bin/freetype-config /usr/bin   (注:这句他娘的贼有用)
#cp -a /mnt/usr/lib/pkgconfig/libpng* /usr/lib/pkgconfig/

#cd /mnt/source/DirectFB-1.1.0(找不到jpeg??)
#./configure --with-gfxdrivers=none --prefix=/opt/usr --host=arm-linux --enable-sdl=no --disable-x11 PKG_CONFIG=/opt/usr/bin/pkg-config
#make && make install

12,交叉编译cairo-1.4.10
#cd /mnt/source/cairo-1.4.10
(不知道这是在作什么)#export PATH=/opt/usr/binPATH
#export png_REQUIRES="/opt/usr/lib/pkgconfig"
#export png_CFLAGS="-I/opt/usr/include/libpng12"
#export png_LIBS=/opt/usr/lib/libpng.so
#export directfb_CFLAGS="-D_REENTRANT -I/opt/usr/include/directfb"
#export directfb_LIBS="-ldirectfb -lz -lfusion -ldirect -lpthread -ldl"
#export FONTCONFIG_CFLAGS="-I/opt/usr/include/fontconfig"
#export FONTCONFIG_LIBS=/opt/usr/lib/libfontconfig.so
#export FREETYPE_CFLAGS="-I/opt/usr/include/freetype2"
#export FREETYPE_LIBS=/opt/usr/lib/libfreetype.so

#./configure --prefix=/opt/usr --host=arm-linux --disable-xlib --disable-xlib-xrender --enable-directfb --without-x --enable-pdf --enable-ps --enable-svg
#make && make install

12,交叉编译pango-1.16.4(这个pango的依赖还有很多)
修改configure文件
have_cairo=true
have_cairo_png=true
have_cairo_freetype=true

#cd /mnt/source/pango-1.16.4
#export PREFIX=/opt/usr
#export GLIB_CFLAGS="-I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include"
#export GLIB_LIBS="$PREFIX/lib/libglib-2.0.so \
  $PREFIX/lib/libgmodule-2.0.so \
  $PREFIX/lib/libgobject-2.0.so \
  $PREFIX/lib/libfontconfig.so \
  $PREFIX/lib/libxml2.so \
  $PREFIX/lib/libfreetype.so"
#export CAIRO_CFLAGS="-D_REENTRANT -I$TARGET_PREFIX/usr/include/cairo -I$TARGET_PREFIX/usr/include/directfb -I$TARGET_PREFIX/usr/include/freetype2 -I$TARGET_PREFIX/usr/include/libpng12"
#export CAIRO_LIBS=$PREFIX/lib/libcairo.so
#export FONTCONFIG_CFLAGS="-I$PREFIX/include/fontconfig"
#export FONTCONFIG_LIBS=$PREFIX/lib/libfontconfig.so
#export FREETYPE_CFLAGS="-I$PREFIX/include/freetype2"
#export FREETYPE_LIBS=$PREFIX/lib/libfreetype.so
#export FREETYPE_CONFIG=$PREFIX/bin/freetype-config
#./configure --host=arm-linux --prefix=/opt/usr --without-x
以下我也很困惑,
我修改了Makefile把examples,tools,tests给删除了,但是下面的方法就是想通过修改examples,tools,tests来编译pango,但总是不成功,
修改examples/Makefile:在 GLIB_LIBS 后加上以下的值在makefile中)
/opt/gtkdfb/usr/local/lib/libpng12.so \
/opt/gtkdfb/usr/lib/libdirectfb.so \
/opt/gtkdfb/usr/lib/libdirect.so \
/opt/gtkdfb/usr/lib/libfusion.so
修改tools/Makefile 和 tests/Makefile: 设置LIBS如下
LIBS = $(GLIB_LIBS)
#make && make file
作者: succulent    时间: 2007-11-28 11:47

我目前也想做gtk移植到目标板这一部分的工作
但苦于毫无头绪,多谢lz的帖子,很详细
希望能尽快成功,尽快更新
作者: succulent    时间: 2007-11-28 11:49

请问哪里能找到更多好用的英文资料呢
作者: echo    时间: 2007-11-28 13:59     标题: 回复

更多的英文资料多到DirectFB官方网站上去获取,里面有好多!

作者: pilgrim_kevin    时间: 2007-12-6 22:04

我已经完成DirectFB1.1.0 + GTK+-2.12.2 + glib-2.14.4的交叉编译。

不过,放在板上还不能成功执行,运行错误:

DirectFB/Core/vt: Couldn't open neither `/dev/tty2' nor `/dev/vc/2
DirectFB/Core:Could not initialize 'system_core' core!

有谁在做arm下的GTK+/DFB,大家多交流!
作者: freeubuntu    时间: 2007-12-10 20:39

呵呵,我比你好一点,可以看到一个鼠标,同时报错如下:
                                                                              
     =======================|  DirectFB 1.1.0  |=======================         
          (c) 2001-2007  The DirectFB Organization (directfb.org)               
          (c) 2000-2004  Convergence (integrated media) GmbH                    
        ------------------------------------------------------------            
                                                                                
(*) DirectFB/Core: Single Application Core. (2007-12-07 12:13)                  
(*) Direct/Thread: Running 'VT Switcher' (CRITICAL, 411)...                     
(*) Direct/Thread: Running 'PS/2 Input' (INPUT, 412)...                        
(*) DirectFB/Input: IMPS/2 Mouse 1.0 (directfb.org)                             
(*) Direct/Thread: Running 'Keyboard Input' (INPUT, 413)...                     
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)                                 
(!) Direct/Modules: Could not open module directory `/usr//lib/directfb-1.1-0/gfxdrivers
    --> No such file or directory                                               
(*) DirectFB/Graphics: Generic Software Rasterizer 0.6 (directfb.org)           
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)                                
(*) FBDev/Mode: Testing 320x240 RGB16                                          
(*) FBDev/Mode: Preparing switch to 320x240 RGB16                              
(*) FBDev/Mode: Testing 320x240 RGB16                                          
(*) FBDev/Mode: Preparing switch to 320x240 RGB16                              
(*) FBDev/Mode: Testing 320x240 RGB16                                          
(*) FBDev/Mode: Preparing switch to 320x240 RGB16                              
(*) FBDev/Mode: Testing 320x240 RGB16                                          
(*) FBDev/Mode: Preparing switch to 320x240 RGB16                              
(*) FBDev/Mode: Testing 320x240 RGB16                                          
(*) FBDev/Mode: Preparing switch to 320x240 RGB16                              
(*) FBDev/Mode: Switched to 320x240 (320x240) at 16 bit RGB16 (wanted RGB16).   
(!) DirectFB/FBDev: Panning display failed (x=0 y=0 ywrap=0 vbl=0)!            
    --> Invalid argument                                                        
(*) FBDev/Surface: Allocated 320x240 16bit RGB16 buffer at offset 0 and pitch 6.
(*) FBDev/Mode: (Post)Setting 320x240 RGB16                                    
(*) FBDev/Mode: Testing 320x240 RGB16                                          
(*) FBDev/Mode: Preparing switch to 320x240 RGB16                              
(*) FBDev/Mode: (Post)Setting 320x240 RGB16                                    
(*) Direct/Thread: Running 'EventBufferFeed' (MESSAGING, 414)...               
                                                                                
(mhelloworld:405): Pango-WARNING **: No builtin or dynamically                  
loaded modules were found. Pango will not work correctly.                       
This probably means there was an error in the creation of:                     
  '/usr/etc/pango/pango.modules'                                                
You should create this file by running pango-querymodules.                     
Fontconfig error: Cannot load default config file                              
No fonts found; this probably means that the fontconfig                        
library is not correctly configured. You may need to                           
edit the fonts.conf configuration file. More information                        
about fontconfig can be found in the fontconfig(3) manual                       
page and on                                                
(!!!)  *** WARNING [Application exited without deinitialization of DirectFB!] ]
(!!!)  *** WARNING [still objects in 'Layer Region Pool'] *** [object.c:239 in]
(!!!)  *** WARNING [still objects in 'Layer Context Pool'] *** [object.c:239 i]
(!!!)  *** WARNING [setting window->stack = NULL] *** [default.c:2882 in wm_cl]
(!!!)  *** WARNING [still objects in 'Window Pool'] *** [object.c:239 in fusio]
(!!!)  *** WARNING [still objects in 'Surface Pool'] *** [object.c:239 in fusi]
作者: freeubuntu    时间: 2007-12-10 20:40

还有为仁兄,报这个错,
作者: freeubuntu    时间: 2007-12-10 20:41

[root@Linux bin]#./gtk-demo

=======================| DirectFB 1.1.0 |=======================
(c) 2001-2007 The DirectFB Organization (directfb.org)
(c) 2000-2004 Convergence (integrated media) GmbH
————————————————————

(*) DirectFB/Core: Single Application Core. (2007-10-09 04:03)
pagesize 0×1000
(*) Direct/Thread: Running ‘VT Switcher’ (CRITICAL, 1050)…
(*) Direct/Thread: Running ‘Linux Input’ (INPUT, 1051)…
(*) DirectFB/Input: codec_ts (1) 0.1 (directfb.org)
(*) Direct/Thread: Running ‘Linux Input’ (INPUT, 1052)…
(*) DirectFB/Input: pxa3xx_keypad (2) 0.1 (directfb.org)
(*) Direct/Thread: Running ‘Keyboard Input’ (INPUT, 1053)…
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)
(!) Direct/Modules: Could not open module directory `/mnt/usr/lib/directfb-1.1-0
/gfxdrivers’!
–> No such file or directory
(*) DirectFB/Graphics: Generic Software Rasterizer 0.6 (directfb.org)
(*) DirectFB/Core/WM: Default 0.3 (directfb.org)
(*) FBDev/Mode: Testing 480×640 RGB16
(*) FBDev/Mode: Preparing switch to 480×640 RGB16
(*) FBDev/Mode: Testing 480×640 RGB16
(*) FBDev/Mode: Preparing switch to 480×640 RGB16
(*) FBDev/Mode: Testing 480×640 RGB16
(*) FBDev/Mode: Preparing switch to 480×640 RGB16
(*) FBDev/Mode: Testing 480×640 RGB16
(*) FBDev/Mode: Preparing switch to 480×640 RGB16
(*) FBDev/Mode: Preparing switch to 480×640 RGB16
(*) FBDev/Mode: Preparing switch to 480×640 RGB16
(*) FBDev/Mode: Switched to 480×640 (480×640) at 16 bit RGB16 (wanted RGB16).
(!) DirectFB/FBDev: Panning display failed (x=0 y=0 ywrap=0 vbl=0)!
–> Invalid argument
(*) FBDev/Surface: Allocated 480×640 16bit RGB16 buffer at offset 0 and pitch 96
0.
(*) FBDev/Mode: (Post)Setting 480×640 RGB16
(*) FBDev/Mode: Testing 480×640 RGB16
(*) FBDev/Mode: Preparing switch to 480×640 RGB16
(*) FBDev/Mode: (Post)Setting 480×640 RGB16
(*) Direct/Thread: Running ‘EventBufferFeed’ (MESSAGING, 1054)…
(!) [ 1041: 0.000] –> Caught signal 6 (unknown origin) stack = NULL] *** [default.c:2882 in wm_clo
se_stack()]
(!!!) *** WARNING [still objects in ‘Window Pool’] *** [object.c:239 in fusion
_object_pool_destroy()]
(!!!) *** WARNING [still objects in ‘Surface Pool’] *** [object.c:239 in fusio
n_object_pool_destroy()]
Aborted
[root@Linux bin]#

你能否给我一点建议,是不是需要做些配置。
作者: freeubuntu    时间: 2007-12-10 20:42

大家加油一起讨论
加我msn阿,就在下面
作者: freeubuntu    时间: 2007-12-11 09:44

我的程序已经在开发板上跑起来了,
呵呵
大家还是在论坛讨论问题吧!
作者: brumby007    时间: 2007-12-11 16:13

为什么我在交叉编译GTK的时候,明明有Pango,可是却报Pango not build?
作者: freeubuntu    时间: 2007-12-12 10:58

to  IP brumby007
这个问题我也遇到过,应为gtk动态连接库默认为系统的pango了
作者: freeubuntu    时间: 2007-12-12 11:09

大家还是在论坛问问题吧,我把我的msn加入了一个邮件列表,每收到一个邮件就打不出字来,可能是个bug
作者: brumby007    时间: 2007-12-12 14:09

我现在碰到的问题是:
gtk+已经编译通过了。现在移植到开发板上运行bin/gtk-demo时,出现了如下提示:

gtk-demo:796 getpwuid_r(): failed due to unknown user id(0).

could not initialize 'system' core!
-->Inappropriate ioctl for device

gdk_display_openirectFBCreate : Initialization error!

请教各位高手了……谢了
EMAIL:hainan_mcgk@163.com
作者: brumby007    时间: 2007-12-12 14:10

达人们,快帮我啊……
作者: freeubuntu    时间: 2007-12-12 17:55

你把你编译出来的库放在开发板的什么地方呢?
作者: cpcpk    时间: 2008-1-5 19:33

tiff-3.7.4   在哪里有下载? 给个连接好么?
作者: lingmj    时间: 2008-1-15 01:48

原帖由 freeubuntu 于 2007-12-12 10:58 发表
to  IP brumby007
这个问题我也遇到过,应为gtk动态连接库默认为系统的pango了
请问版主要怎么修改gtk才能找到我们编译的pango?能不能把gtk+的交叉编译步骤也写出来。谢谢!
作者: lingmj    时间: 2008-1-15 08:05


作者: cpcpk    时间: 2008-1-17 21:26

thanks

作者: freeubuntu    时间: 2008-1-25 10:58

好久没来真是不好意思,我在移植uboot和linux kernel 又在修改文件系统, 太忙了

gtk的这个马上帖出来了

过段时间我把如何移植uboot 和kernel还有如何作自己的文件系统也写个文章贴上来

谢谢大家支持
作者: freeubuntu    时间: 2008-1-25 11:12     标题: uboot已经出信号了,在调试

U-Boot 1.2.0 (Jan 14 2008 - 11:38:32)                                          
                                                                                
U-Boot code: 33F80000 -> 33F98424  BSS: -> 33F9CC34                             
DRAM:  64 MB                                                                    
NAND:    64 MB                                                                  
nand_read_ecc: Failed ECC read, page 0x00000140                                 
nand_read_ecc: Failed ECC read, page 0x00000140                                 
*** Warning - bad CRC or NAND, using default environment                        
                                                                                
In:    serial                                                                  
Out:   serial                                                                  
Err:   serial                                                                  
SMDK2440 #
作者: freeubuntu    时间: 2008-1-28 09:06

时间很赶的人请参考这里
\rojects:GTK_on_DirectFB_for_Embedded_Systems
作者: yyj1982    时间: 2008-2-14 17:55     标题: 回复 5F 的帖子

我在compiler pango时遇到和楼主相同的问题,也是不能build通过,请问楼主最后怎么解决的?谢谢!

//**********************************************************************************
12,交叉编译pango-1.16.4(这个pango的依赖还有很多)
修改configure文件
have_cairo=true
have_cairo_png=true
have_cairo_freetype=true

#cd /mnt/source/pango-1.16.4
#export PREFIX=/opt/usr
#export GLIB_CFLAGS="-I$PREFIX/include/glib-2.0 -I$PREFIX/lib/glib-2.0/include"
#export GLIB_LIBS="$PREFIX/lib/libglib-2.0.so \
  $PREFIX/lib/libgmodule-2.0.so \
  $PREFIX/lib/libgobject-2.0.so \
  $PREFIX/lib/libfontconfig.so \
  $PREFIX/lib/libxml2.so \
  $PREFIX/lib/libfreetype.so"
#export CAIRO_CFLAGS="-D_REENTRANT -I$TARGET_PREFIX/usr/include/cairo -I$TARGET_PREFIX/usr/include/directfb -I$TARGET_PREFIX/usr/include/freetype2 -I$TARGET_PREFIX/usr/include/libpng12"
#export CAIRO_LIBS=$PREFIX/lib/libcairo.so
#export FONTCONFIG_CFLAGS="-I$PREFIX/include/fontconfig"
#export FONTCONFIG_LIBS=$PREFIX/lib/libfontconfig.so
#export FREETYPE_CFLAGS="-I$PREFIX/include/freetype2"
#export FREETYPE_LIBS=$PREFIX/lib/libfreetype.so
#export FREETYPE_CONFIG=$PREFIX/bin/freetype-config
#./configure --host=arm-linux --prefix=/opt/usr --without-x
以下我也很困惑,
我修改了Makefile把examples,tools,tests给删除了,但是下面的方法就是想通过修改examples,tools,tests来编译pango,但总是不成功,
修改examples/Makefile:在 GLIB_LIBS 后加上以下的值在makefile中)
/opt/gtkdfb/usr/local/lib/libpng12.so \
/opt/gtkdfb/usr/lib/libdirectfb.so \
/opt/gtkdfb/usr/lib/libdirect.so \
/opt/gtkdfb/usr/lib/libfusion.so
修改tools/Makefile 和 tests/Makefile: 设置LIBS如下
LIBS = $(GLIB_LIBS)
#make && make file
作者: cpcpk    时间: 2008-2-25 19:45     标题: 回复 17F 的帖子

报错如下:
*** Can't link to Pango. Pango is required to build
*** GTK+. For more information see
我运行pkg-config --list-all,可以找到pango的,这是那里出问题了呢?
作者: jj2006    时间: 2008-3-21 18:03

强.可惜我没有开发板.很想玩一下.
作者: lgh0504    时间: 2008-5-27 14:38     标题: 顶版主,看了您的文章,终于过了

如题~~~~万分感谢
作者: tiansun7k    时间: 2008-7-3 18:37

关于解决“ *** Can't link to Pango. Pango is required to build ”问题的具体步骤,楼主能列一下吗?就是让我们编译的 gtk任出我们自己编译的pango而不是系统的pango

我在搜索邮件列表的时候看到了一种解决方法,可能就是你 说的那个自动识别系统pango意思:
    Well folks finally figured out the problem, turns out that there was justanother older non-cairo version of pango on my system and was listed before the newer libraries and was causing this issue. Removing the older pango seems to have resolved
作者: wangyoulin    时间: 2008-7-8 13:42     标题: 请教freeubuntu以及其他的热心人

freeubuntu在3楼里说的“glib-2.12.13,atk-1.19.3,pango-1.16.4,DirectFB- 1.1.0,cairo-1.4.10,gtk+-2.10.14”这几个包是不是linux系统里自带的?我的linux里没有,我自己下了第一个来 装,好像也不行
热心人赶快帮帮忙吧,我QQ 89501074   MSN ,等待中......
作者: liaoggnihao    时间: 2008-7-9 12:09

大大们,指导一下你们的 pango是怎么编译通过的,我的报错:

/usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/../../../../arm-linux/bin/ld: warning: libz.so.1, needed by

/opt/gtkdfb/usr/local/lib/libfontconfig.so, not found (try using -rpath or -rpath-link)
/opt/gtkdfb/usr/local/lib/libxml2.so: undefined reference to `deflate'
作者: liaoggnihao    时间: 2008-7-9 12:12

楼主快回来,等你了,
作者: liaoggnihao    时间: 2008-7-9 22:18

上面那个问题解决了,现在到了,

can't link to pango

呵呵,等大大回来,
阅读(3981) | 评论(0) | 转发(0) |
0

上一篇:防蚊

下一篇:jni / C for android 技术总揽

给主人留下些什么吧!~~