• 24766阅读
  • 18回复

求助2 如何将QT移植到ARM板上啊?Ubuntu,2440,QT4.5的环境 [复制链接]

上一主题 下一主题
离线waterfrogcdw
 
只看楼主 正序阅读 楼主  发表于: 2009-12-26
求助2 如何将QT移植到ARM板上啊?Ubuntu,2440,QT4.5的环境
网上看了很多,自己都晕了,不知道哪个是对的。
求高手给出正解。
我的系统是虚拟机上的Ubuntu, 板子是mini2440的,装了QT4.5的环境。但是QT/Embedded还没装,具体如何建立交叉编译环境,以及如何移植QT,如何在板子上跑程序呢?
[ 此帖被waterfrogcdw在2009-12-28 17:07重新编辑 ]
离线jnny_cn

只看该作者 18楼 发表于: 2015-07-08
回 embeddedgood 的帖子
embeddedgood:想问个问题,高版本的qt4.4以上,arm-gcc编译器对版本有要求吗? (2010-03-23 15:12) 

个人体验gcc-4.6以上大致可以
离线hang_123

只看该作者 17楼 发表于: 2015-06-20
回 waterfrogcdw 的帖子
waterfrogcdw:找到正解:
开发环境
    操作系统:  Vmware6.0 + Ubuntu 8.04。
    交叉编译器:arm-linux-gcc-4.3.2
....... (2010-01-05 16:38) 

配置qt嵌入式版本的时候配置项 有几个错误
离线jwqacqy
只看该作者 16楼 发表于: 2012-09-08
一楼的答案是通解。在实际的移植过程中会遇到很多问题。同样的配置在不同的系统,甚至是同一系统重装都会遇到不同的问题,可以说没有统一解决方案。这需要在解决BUG中积累经验,掌握原理。邮_箱名:touchqvfb    域163.com 具体沟通。不同平台都有自己的编译器,以便能编译出可以在它的平台下运行的代码。像sumsung s3c2440  freescale imx6 imx53 imx51  TI omap系列 君正jz4740 龙芯mips  x86平台工控机都有自己的编译器。也就是因为这些差异给QT或其他开源库移植带来很多麻烦,只要掌握了原理,这些都不是问题。
离线xiaonan1664
只看该作者 15楼 发表于: 2011-09-04
收藏看看,也许有用。
离线0354030w

只看该作者 14楼 发表于: 2010-05-13
其实可以问人家要个已经编译好的QT,就省得编译QT了!编译QT确实很蛋疼!
离线nannan
只看该作者 13楼 发表于: 2010-05-12
你是真正用这么麻烦的操作来编程的?
离线wdunfeng

只看该作者 12楼 发表于: 2010-05-11
呵呵
离线fanky
只看该作者 11楼 发表于: 2010-04-23
谢谢高手分享哈!
离线xuyuan1412

只看该作者 10楼 发表于: 2010-04-22
收藏一下
离线westkenmyth
只看该作者 9楼 发表于: 2010-04-22
收藏一下
离线zg123
只看该作者 8楼 发表于: 2010-03-25
挺有用的,但目前还没准备装,先收藏了!谢谢
离线embeddedgood

只看该作者 7楼 发表于: 2010-03-23
想问个问题,高版本的qt4.4以上,arm-gcc编译器对版本有要求吗?
离线hanshuibi
只看该作者 6楼 发表于: 2010-03-22
收藏先,肯定会碰到跟你一样的问题。谢谢
离线ren_10011
只看该作者 5楼 发表于: 2010-03-17
感觉你这个有很多问题呢
离线navycsu
只看该作者 4楼 发表于: 2010-03-07
引用第1楼waterfrogcdw于2010-01-05 16:38发表的  :
找到正解:
开发环境
历经漫长的编译过程,默认安装在/usr/local/Trolltech/Qt-4.5.2下,编译完成后源程序不要删除,还有用。
.......

为什么不要删除啊?程序不都已经安装在/usr/local/Trolltech/Qt-4.5.2下了吗?留着Qt-X11的源程序还有什么用呢?
离线hojone

只看该作者 3楼 发表于: 2010-01-19
先收藏,以后备用。。。。。
离线tomorrowlhd

只看该作者 2楼 发表于: 2010-01-14
关注中..............................
离线waterfrogcdw
只看该作者 1楼 发表于: 2010-01-05
找到正解:
开发环境

    操作系统:  Vmware6.0 + Ubuntu 8.04。
    交叉编译器:arm-linux-gcc-4.3.2
    目标板:     mini2440 + NEC3.5寸屏
    
1、下载源码包:

    在:ftp://ftp.qtsoftware.com/qt/source/下载
    qt-embedded-linux-opensource-src-4.5.2.tar.bz2
    qt-x11-opensource-src-4.5.2.tar.bz2

    在http://blog.chinaunix.net/u2/86708/showart_1924834.html上下载tslib1.4.tar.gz

2、配置ubuntu 8.04编译环境

    安装g++:  sudo  apt-get g++
    安装编译X11用到的库:sudo apt-get libx11-dev libxext-dev

    安装libxtst-dev: sudo aptitude install libxtst-dev 否则编译qvfb出错。

3、编译及安装qt-x11-opensource-src-4.5.2

    qt-x11版本可以产生Qt开发工具,如designer、qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发
    板,也可以开发Qt应程序。
    tar xjvf qt-x11-opensource-src-4.5.2.tar.bz2
    cd qt-x11-opensource-src-4.5.2
    ./configure
    make
    make install
    历经漫长的编译过程,默认安装在/usr/local/Trolltech/Qt-4.5.2下,编译完成后源程序不要删除,还有用。

4、编译配置QtEmbedded-4.5.2-x86版本

    A、解压
    root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
    root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-x86
    root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-x86
    
    B、配置编译:
    ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-x86 -embedded x86 -qvfb
    root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# make

    C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-x86目录下:
    root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# make install
    
    D、建立脚本文件:setenv_arm.sh,输入以下内容:
    export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/
    export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/bin/:$PATH
    export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/lib/:$LD_LIBRARY_PATH
    
    E、编译x86版QT应用程序前,先执行此脚本文件:
    root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5.2-x86# source setenv-x86.sh
    
5、编译安装tslib1.4

    A、安装编译过程需用到的程序
        root@hrixin-desktop:/home/hrixin# apt-get install autoconf(或autoconf2.13)
        root@hrixin-desktop:/home/hrixin# apt-get install automake
        root@hrixin-desktop:/home/hrixin# apt-get install libtool
    
    B、配置编译
        root@hrixin-desktop:/work/qt# tar xzvf tslib-1.4.tar.gz
        root@hrixin-desktop:/work/qt# cd tslib
        生成./configure
        root@hrixin-desktop:/work/qt/tslib# source autogen.sh
        root@hrixin-desktop:/work/qt/tslib# ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
        root@hrixin-desktop:/work/qt/tslib# make

    C、安装
        root@hrixin-desktop:/work/qt/tslib# make install-strip //生成瘦身应用程序和库
        打包
        root@hrixin-desktop:/usr/local# tar czvf tslib.tar.gz tslib

    D、复制到NFS文件系统/usr/local目录下解压
        root@hrixin-desktop:/work/root_qtopia/usr/local# tar xzvf tslib.tar.gz
        
    E、设置环境变量,校准触摸屏。
        在天开板终端建立脚本文件,并执行:
        export TSLIB_ROOT=/usr/local/tslib
        export TSLIB_TSDEVICE=/dev/input/event0
        export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
        export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
        export TSLIB_CALIBFILE=/etc/pointercal
        export TSLIB_FBDEVICE=/dev/fb0
        export QWS_MOUSE_PROTO=Tslib:/dev/input/event0

        注意:触摸屏的前提是你的触摸屏驱动已经写好,并加载进了内核.
        你可以测试有没有加载触摸屏驱动,cat /dev/input/event0(这只是我的板子上的触摸屏) ,
        点击触摸屏,看终端有无显示,若有则表明正确。
        
        在开发板/usr/local/tslib/bin目录下执行校准触摸屏程序:
        [root@FriendlyARM bin]# ./ts_calibrate
        可以运行此目录下的其他程序进行测试。
        
    至此,触摸屏程序能顺利运行,接下来移植QtEmbedded-4.5.2,设置好环境变量。

6、编译安装QtEmbedded-4.5.2-arm版本

    A、解压
    root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2
    root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2 qt-embedded-linux-opensource-src-4.5.2-arm
    root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-arm

    B、配置编译:
    ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-arm -embedded arm \
    -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif \
    -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus \
    -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen \
    -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib

    注意这个目录要跟你的tslib安装目录相同!!!

    root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make
    
    C、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-arm目录下:
    root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-arm# make install

    D、打包编译安装好的QtEmbedded库文件:
    root@hrixin-desktop:/usr/local/Trolltech# tar czvf QtEmbedded-4.5.2-arm.tar.gz QtEmbedded-4.5.2-arm

    E、建立脚本文件:setenv_arm.sh,输入以下内容:
    export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/
    export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin/:$PATH
    export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib/:$LD_LIBRARY_PATH
    
    F、编译ARM版QT应用程序前,先执行此脚本文件:
    root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5.2-arm# source setenv-arm.sh

    编译calculator
    root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator# calculator.pro
    root@hrixin-desktop:/work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator# make

7、在主机上建立NFS启动根文件系统,把编译好的库文件复制到相关目录下。

    A、文件系统目录为:/work/root_qtopia/,修改rcS
    [root@FriendlyARM /]# vi /etc/init.d/rcS
    #/bin/qtopia &
    
    建立Trolltech目录:
    root@hrixin-desktop:/work/root_qtopia/usr/local# mdkir Trolltech
    
    B、把打包好的库文件:QtEmbedded-4.5.2-arm.tar.gz复制到/work/root_qtopia/usr/local/Trolltech目录下
    root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech# tar xzvf QtEmbedded-4.5.2-arm.tar.gz
    root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech# cd QtEmbedded-4.5.2-arm/
    
    C、复制5-F中编译好的calculator可执行文件到此目录下:
    root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5.2-arm# cp /work/qt/qt-embedded-linux-opensource-src-4.5.2-arm/examples/widgets/calculator/calculator ./

    D、建立脚本文件
    root@hrixin-desktop:/work/root_qtopia/usr/local/Trolltech/QtEmbedded-4.5.2-arm# gedit setenv.sh
    输入以下内容:(把设置tslib环境变量的脚本文件内容,也添加进来)
        #!/bin/sh
        export TSLIB_ROOT=/usr/local/tslib
        export TSLIB_TSDEVICE=/dev/input/event0
        export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
        export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
        export TSLIB_CALIBFILE=/etc/pointercal
        export TSLIB_FBDEVICE=/dev/fb0
        export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
        export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm
        export QPEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm
        export LD_LIBRARY_PATH=$QTDIR/lib:$TSLIB_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
    
    E、至此,主机上的文件系统已经配置好,开板通过NFS挂载到此文件系统启动。
    启动后,开发板串口终端执行刚才的脚本文件(通过NFS启动,执行脚本文件未成功),设置好环境变量。
    检查环境变量是否成功:
    [root@FriendlyARM QtEmbedded-4.5.2-arm]# echo $QTDIR
    /usr/local/Trolltech/QtEmbedded-4.5.2-arm
    成功!
    如果没有输出,则失败。同样的方法检查其他两个环境变量。
    
    F、运行calculator
    [root@FriendlyARM QtEmbedded-4.5.2-arm]# ./calculator -qws &
快速回复
限100 字节
 
上一个 下一个