zoukankan      html  css  js  c++  java
  • 浅析QT 4 移植

    原文:http://mobile.51cto.com/symbian-268366.htm

    对于QT 4 移植,本篇文章介绍QT4移植到了mini2440的开发板上,在操作之前,首先要弄清楚一些概念,内容本文有详细介绍。

    对于QT 4 移植,本篇文章介绍QT4移植到了mini2440的开发板上。在操作之前,首先要弄清楚一些概念:

    1.什么是Qt

    Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。Qt 软件前身为 Trolltech (奇趣科技),2008年6月被诺基亚收购。

    2.Qt的版本和分类

    Qt 的版本是按照不同的图形系统来划分的,目前分为四个版本:

    Win32版,适用于Windows平台;

    X11版,适合于使用了x系统的各种 linux 和 unix的平台;

    Mac版,适合与苹果MacOS;

    embedded版,适合于具有帧缓冲(frame buffer)的linux 的平台

    3.Qtopia和Qt的关系

    Qt Palmtop Environment,是构建于Qt/E之上一个类似桌面系统的应用环境,包括了PDA和手机等掌上系统常见的功能如电话簿、日程表等。

    Qtopai后来改名为Qt Extended,2009年3月3日,Nokia决定停止Qt Extended的后续开发,转而全心投入Qt的产品开发,并逐步会将一部分QtExtended的功能移植到Qt开发框架中。

    qt-4.5.3的编译与移植:

    在PC的linux系统中开发qt程序,完全可以下载完整的SDK, Qt SDK for Linux/X11 32-bit** (370 Mb),包含QT库,Qt Creator和qt的其他开发工具。下载后直接安装即可。

    所以,主要的工作是编译在ARM板上运行的qt库:下载qt-embedded-linux-opensource-src-4.5.3.tar.gz,tslib-1.4.tar.gz

    1.首先编译安装触摸屏驱动库tslib-1.4

    1. view sourceprint?1   
    2. ./autogen.sh    
    3. ./configure --prefix=/usr/local/qte-arm/tslib-1.4 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes    
    4. make    
    5. sudo make install  

    这样就可以在/usr/local/qte-arm/tslib-1.4目录下看到相关的应用程序、共享库、配置文件等,这些库和配置文件都是要拷到ARM板的根文件系统中的。

    2.编译qt-embedded-linux-opensource-src-4.5.3

    1. view sourceprint?01 ./configure -prefix /usr/local/qte-arm     
    2.  -no-qt3support     
    3.  -qt-zlib     
    4.  -qt-libtiff     
    5.  -qt-libpng     
    6.  -qt-libmng     
    7.  -qt-libjpeg     
    8.  -make libs     
    9.  -nomake examples (不编译例子程序和文档)    
    10.  -nomake demos     
    11.  -nomake docs     
    12.  -no-nis     
    13.  -no-cups     
    14.  -no-iconv     
    15.  -xplatform qws/linux-arm-g++     
    16.  -embedded arm     
    17.  -little-endian     
    18.  -qt-freetype     
    19.  -depths 8,16,24,32     
    20.  -qt-gfx-linuxfb     
    21.  -no-gfx-transformed     
    22.  -no-gfx-qvfb     
    23.  -no-gfx-vnc     
    24.  -no-gfx-multiscreen     
    25.  -qt-kbd-usb     
    26.  -qt-kbd-tty     
    27.  -qt-mouse-pc     
    28.  -no-glib     
    29.  -qt-mouse-tslib -I/usr/local/qte-arm/tslib/build/include -L/usr/local/qte-arm/tslib/build/lib  

    编译选项-qt-mouse-tslib需要用到触摸屏功能的动态库,所以得把之前编译安装的tslib库包含进来。

    1. make  
    2. make install 

    这样qt/E的编译工作完成,主要是得到了qt程序在arm板上运行所需要的库文件,以及用于arm平台的qmake,moc,uic等工具。

    3.拷贝相关文件到ARM根文件系统

    拷贝/usr/local/qte-arm/tslib整个目录到arm板根文件系统root_nfs/下;

    拷贝/usr/local/qte-arm/lib/下所有库文件到root_nfs/opt/qt/lib目录下,你可能不需要全部的库文件,可根据需要选择;

    4.设置环境变量和配置文件

    首先设置tslib的配置文件  gedit root_nfs/tslib/build/etc/ts.conf

    1. view sourceprint?1 module_raw input    
    2.  module pthres pmin=1    
    3.  module variance delta=30    
    4.  module dejitter delta=100    
    5.  module linear  

    然后设置qt及tslib的环境变量: gedit root_nfs/etc/profile

    在最后加入:

    1. view sourceprint?01 export QTDIR=/opt/qt    
    2.  export T_ROOT=/tslib/build    
    3.  export PATH=$T_ROOT/bin:$PATH    
    4.  export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib    
    5.  export TSLIB_CONSOLEDEVICE=none    
    6.  export TSLIB_FBDEVICE=/dev/fb0    
    7.  export TSLIB_TSDEVICE=/dev/input/event0    
    8.  export TSLIB_PLUGINDIR=$T_ROOT/lib/ts    
    9.  export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf    
    10.  export TSLIB_CALIBFILE=/etc/pointercal    
    11.  export QWS_KEYBOARD=USB:/dev/input/event1    
    12.  export QWS_MOUSE_PROTO=Tslib:/dev/input/event0    
    13.  export QWS_DISPLAY=LinuxFb:mmWidth45:mmHeight60:0    
    14.  export QWS_SIZE=240x320  

    重启开发板,移植完成!注意,在开发板上运行qt程序要加-qws 选项,从而让程序以Server模式运行。

    【编辑推荐】

    在Qt中如何写控制台程序

    解析 QT 静态库和动态库

    用Qt为Symbian开发应用程序

    Qt 平台中使GUI保持响应流畅

    解析Qt 4.3.5 X11 交叉编译平台的搭建、移植

  • 相关阅读:
    Asp.net web服务处理程序(第六篇)
    Asp.net 处理程序(第五篇)
    HttpApplication实战大文件上传 (第四篇)
    HttpApplication处理对象与HttpModule处理模块 (第三篇)
    Asp.net管道 (第二篇)
    HTTP -> Asp.net (第一篇)
    C# 计划任务
    认识元数据和IL(下)<第五篇>
    认识元数据和IL(中)<第四篇>
    认识元数据和IL(上) <第三篇>
  • 原文地址:https://www.cnblogs.com/ganrui/p/3713054.html
Copyright © 2011-2022 走看看