设为首页收藏本站

数字电视开发论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

快捷登录

胜天工科技销售各种数字电视信号调制卡胜天工科技销售各种数字电视信号码流卡

【游客、新手、注册会员的区别】 【积分策略和会员晋级说明】 【发帖和附件上传规则】 【如何下载感兴趣的资料】 【如何获取梦游币】 【侵权资料处理及免责说明】
查看: 2229|回复: 1

gtk的交叉编译环境搭建

[复制链接]
  • TA的每日心情
    开心
    2016-9-26 15:28
  • 签到天数: 56 天

    [LV.5]常住居民I

    新浪微博达人勋

    发表于 2011-10-12 12:32:16 | 显示全部楼层 |阅读模式
    分享到:
    消息来自- 浙江杭州
    下载以下源码包:
    atk-1.19.3.tar.bz2
    cairo-1.4.10.tar.gz
    DirectFB-1.1.0.tar.gz
    expat-2.0.1.tar.gz
    fontconfig-2.4.2.tar.gz
    freetype-2.3.5.tar.bz2
    glib-2.12.13.tar.bz2
    gtk+-2.10.14.tar.bz2
    jpegsrc.v6b.tar.gz
    libpng-1.2.19.tar.bz2
    libxml2-2.6.29.tar.gz
    pango-1.16.4.tar.bz2
    tiff-3.7.4.tar.gz
    zlib-1.2.3.tar.bz2
    核心包有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
    安装目录选在/mnt/udisk/armhome 以下是编译过程:
    export PATH=$PATH:/usr/local/arm/3.4.1/bin              设置交叉编译器所在路径的环境变量
    export PREFIX=/mnt/udisk/armhome                      设置目的路径的环境变量  
    export LDFLAGS=-L$PREFIX/lib                         设置arm-linux-ld连接时需要的库文件所在路径的环境变量
    export CFLAGS="-g -I$PREFIX/include"                    设置arm-linux-gcc编译时需要的头文件所在路径的环境变量
    export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig          设置pkg-config命令执行时,需要的*.pc文件所在路径的环境变量
    1.glib
    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
    CC=arm-linux-gcc ./configure --host=arm-linux --build=i686-pc-linux --prefix=$PREFIX --cache-file=arm-linux.cache
    make
    make install
    2.atk
    ./configure --host=arm-linux --prefix=$PREFIX
    3. zlib
    CC=arm-linux-gcc ./configure --prefix=$PREFIX --shared

    4. jpeg-6b
    ./configure   --prefix=$PREFIX--enable-shared --enable-static
    修改生成的Makefile文件:
    # The name of your C compiler:
    CC= gcc   该成   CC=arm-linux-gcc (根据你自己交叉编译器的位置修改)
    # library (.a) file creation command
    AR= ar rc 该成   AR= arm-linux-ar rc   (同上)
    # second step in .a creation (use "touch" if not needed)
    AR2= ranlib 该成   AR2=arm-linux-ranlib (同上)
    mkdir $PREFIX/man
    mkdir $PREFIX/man/man1
    make
    make install
    5. libpng
    ./configure -host=arm-linux --prefix=$PREFIX
    6. expat
    ./configure -host=arm-linux   --prefix=$PREFIX
    7. freetype
    ./configure -host=arm-linux   --prefix=$PREFIX
    8. libxml
    ./configure --host=arm-linux   --prefix=$PREFIX
    9. fontconfig
    export LIBXML2_CFLAGS=-I$PREFIXinclude/libxml2
    export LIBXML2_LIBS="-L$PREFIX/lib -lxml2"
    ./configure --host=arm-linux --prefix=$PREFIX --with-freetype-config=$PREFIX/bin/freetype-config --with-arch=arm
    10. tiff
    ./configure --host=arm-linux --prefix=$PREFIX --enable-shared --enable-static

    11.DirectFB
    ./configure -host=arm-linux --prefix=$PREFIX --with-gfxdrivers=none   --enable-png --enable-jpeg --enable-tiff --enable-zlib --enable-sdl=no --enable-gif=no --disable-x11  
    12. cairo
    ./configure --host=arm-linux --prefix=/usr/gtkdfb --without-x --disable-xlib --disable-xlib-xrender --enable-directfb --enable-freetype --disable-win32 --enable-pdf --enable-ps --disable-svg --enable-png
    13.pango
    修改configure文件     与之前执行cairo的脚本configure参数是对应地,如果不对应,会出现can't link to pango的错误。
    have_cairo=true
    have_cairo_png=true      
    have_cairo_ps=true
    have_cairo_pdf=true
    have_cairo_freetype=true
    ./configure --host=arm-linux --prefix=$PREFIX --enable-cairo --without-x
    14. gtk
    export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib"
    export CPPFLAGS="-I$PREFIX/include"
    export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
    ./configure --host=arm-linux --prefix=$PREFIX --with-gdktarget=directfb --without-x
    LDFLAGS中的-Wl,-rpath,$PREFIX/lib设定,解决了找不到pango的问题
    设定了CPPFLAGS,解决了jpeglib.h找不到的问题,从而支持了jpeg
    编译好以后,可以把/mnt/udisk/armhome里的文件拷贝到开发板上
    要想gtk-demo可以正确执行,还需要在开发板系统
    启动后,
    执行/mnt/udisk/armhome/bin/pango-querymodules > /mnt/udisk/armhome/etc/pango/pango.modules 生成pango.modules文件
    执行/mnt/udisk/armhome/bin/gdk_pixbuf.loaders > /mnt/udisk/armhome/etc/gtk-2.0/gdk-pixbuf.loaders   生成gdk-pixbuf.locaders文件
    因为我用的是u盘保存的整个环境,所以在开发板上的路径就是/mnt/udisk/armhome   大家可以根据自己当前的环境做相应的修改。
    用我上传的已编译好的环境armhome.rar就可以用了,但目前我的执行速度比较慢,不论gtk-demo 还是例程helloworld都需要等待一段时间才能出现,一开始会出现背景与水滴鼠标指针,但等一段就可以进界面了。我继续我的研究了,希望大家能够顺利进行环境的搭建,大家有空多交流,edit by __eabi
    踩过的脚印

    该用户从未签到

    新浪微博达人勋

    发表于 2014-2-27 20:45:44 | 显示全部楼层
    消息来自- 美国
    不错,看看!
    您需要登录后才可以回帖 登录 | 注册 新浪微博登陆

    本版积分规则

    嗨!您好:
    欢迎来到数字电视开发论坛。
    我的名字叫梦梦
    很高兴能够为您服务!
    如果已经注册【立即登录】
    还没有账号请【注册】
    嗨!您好:
    欢迎来到数字电视开发论坛。
    我的名字叫梦梦
    很高兴能够为您服务!
    如果已经注册【立即登录】
    还没有账号请

    QQ|小黑屋|手机版|Archiver|数字电视开发网 ( 京ICP备16008897号-5   

    GMT+8, 2018-4-23 08:36 , Processed in 0.243920 second(s), 35 queries , Gzip On.

    Powered by Discuz! X3.1

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表