• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Ubuntu下Qt嵌入式交叉编译开发环境搭建

海豚 2015-06-29 浏览量:3898
如何进行Ubuntu下Qt嵌入式交叉编译开发环境搭建?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个问题太大了

    本开发环境可以实现Ubuntu下Qt程序的基本开发,
    并可随意编译PC、ARM两种格式的可执行程序。
    方便实现程序的上位机调试、与开发板测试。

    软加班下载及系统环境版本:

    1、linux操作系统环境
             14.04-desktop-i386.iso
      http://yunpan.cn/cQFJdPiqAThpD  访问密码 15ec
    2、GCC 编译器
             gcc version 4.8.2
    需联网在线安装更新
    3、ARM-GCC编译器
             arm-linux-gcc4.4.3.tar.gz
      http://yunpan.cn/cQFJRkbqWgrWu  访问密码 3563
    4、Qt开发软件
      QtSdk-offline-linux-x86-v1.2.1.run
      http://yunpan.cn/cQFJuiQpkufHW  访问密码 13dc
    5、Qt的ARM编译工具链源码  qt-everywhere-opensource-src-4.8.5.tar.gz
      http://yunpan.cn/cQFjXtt2Vh4DM  访问密码 d234

    • 发布于 2015-06-29
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 这三言两语说不清,看博客吧

    http://blog.csdn.net/lpp0900320123/article/details/24876159

    • 发布于2015-06-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 一、qt的版本介绍

        按照不同的图形界面来划分,分为四个版本:

    Win32版:适用于windows平台;

    X11版:适用于各种X系统的Linux和Unix平台;

    Mac版:适用于苹果的MacOS;

    Embedded版:适用于具有帧缓冲(Frame buffer)的linux平台;

          Qtopia是基于qt开发的一个软件平台,Qtopia是构建于Qt/E之上的一系列应用程序,在这个平台上我们可以开发各种应用程序。2008年,TrollTech公司被Nokia收购后,Qtopia被重新命名为Qt Extended。 Nokia在推出了Qt Extended的最新版Qt Extended 4.4.3之后的2009年3月3日,决定停止Qt Extended的后续开发,转而全心投入Qt的产品开发,并逐步会将一部分Qt Extended 的功能移植到Qt的开发框架中。

    所以总的来说,QT也就三种:面向桌面的x11、面向嵌入式的Qt/E、以及面向嵌入式带各种应用程序的Qtopia桌面系统!!!

    比如是Qt的各种版本介绍:


    Windows--x86--msvc2012_64_opengl :表示window平台,msvc2012可以与VS2012进行结合使用,64位应用程序,要求电脑装的是64位操作系统;opengl表示支持openGL的绘图模式

    Windows--x86--mingw48_opengl :window平台下的mingw48编译器进行编译。

    3.Qt 安装包的下载

        下载网址:http://qt-project.org/downloads

    如果想下载Qt的以前版本,可以在上面网址的最下面的一栏有个Archive for old versions ,进去就可以下载qt的以前版本了。


    二、嵌入式Qt开发环境的搭建

    1.预备知识

         嵌入式qt开发环境的安装方法很多,qt的版本也很多。有点让人不知所措,不知该按哪种方法去安装。刚开始总不知其几个版本之间的关系。现在也只知道其大概的一个关系,下面理清一下:据我所知的qt版本有:

        1 、t-x11-opensource-src-4.3.2.tar.gz  

        2 、qt-embedded-linux-opensource-src-4.4.0-rc1.tar.bz2 

        3 、qt-everywhere-opensource-src-4.8. 5.tar.gz

        4 、QtSdk-offline-linux-x86-v1.2.1.run

        5 、qt-creator-linux-x86-opensource-2.5.0.bin

        这些版本真有些让人眼花缭乱。后经过一番的研究和请教,终于对这几个版本之间的关系有点眉目了。

    首先网上有人说安装 1和2,就可以了,因为1可以提供Qt designer 和qvbf,然后2可以提供嵌入式编译库,两者安装后就可以搭建一个嵌入式qt开发环境了,其实没错,不过已经过时了,因为现在有了Qt creator。Qt creator 就包含了 Qt designer和qvbf,因此我们仅仅安装5的版本就可以替代1的安装。不过2也还是要安装,不过了,像2那种版本的编译库现在已经有了更加齐全的库替代,那就是3了。而4就是5的升级版了,它不仅可以包含5拥有的所有东西,而且能开发嵌入式应用程序,不过暂时还没测试。

     

        构建Qt/Embeded的交叉编译环境需要3个Qt开发环境:

      Qt的桌面开发环境:在linux中全安装qt,用它编译好的程序后,可以直接用“./”运行。

      Qt/Embeded(x86)环境:在宿主机平台模拟编译和调试目标机程序的环境,带有qvfb功能,在PC机上可以模拟应用程序在arm开发板上的运行情况。用此编译好的程序,只用“./”命令不可以运行,必须加上参数 -qvfb -qws。

      Qt/Embeded(ARM)交叉编译环境:编译好的程序,用于在arm平台上运行。  

    首先要准备好交叉编译所需要的软件包:

    (1)arm-linux-gcc-4.4.3-20100728.tar.gz(交叉编译环境)

    (2)qt-everywhere-opensource-src-4.8.5.tar.gz(Qt的源码)

    (3)qt-creator-linux-x86_64-opensource-2.5.2.bin(我的系统是64位,所以选择x86_64)

    (4)tslib-1.4.tar.gz(触摸屏校验工具)

    其中(2)和(3)在http://download.qt-project.org/archive/ 进行下载。

     

    2.环境的搭建

    2.1  系统环境

    主机操作系统:ubuntu10.04

    主机编译器:gcc4.4.3,

    交叉编译器:arm-linux-gcc-4.3.3

    2.2 安装交叉编译器

     (1)首先以root用户登入
     (2)复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里
     (3)解压命令tar xvzf arm-linux-gcc-4.3.2 -C /
     注意以上命令必须要有-C而且是大写的后边有个空格也要注意

     (4)配置下编译环境路径 在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后(最后一行)加上 下面代码
     
    export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH

    重新打开一个终端,使上面的配置文件生效;输入命令 arm-linux-gcc  -v;  如果出现下面界面,就代表交叉编译器安装成功,会输出gcc的版本号;

    2.3 安装触摸屏校验工具

    把tslib-1.4.tar.gz放到一个目录下,比如/opt目录下。接着执行命令如下:

           #tar zxvf tslib-1.4.tar.gz 

    执行命令cd tslib,进入tslib当前目录,接着执行命令如下:

           #./autogen.sh 

    然后接着执行配置命令:

           #./configure     --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes 

    最后执行编译命令和安装命令如下:

          1.        make  

          2.        make install 

    如果以上步骤没错,则可以在/usr/local/tslib下出现我们需要的库文件,这些库文件我们移植时会用到。

    编译期间出现的错误:./autogen.sh: 4: autoreconf: not found

    解决办法:sudo apt-get install autoconf automake libtool

    2.4 安装QtCreator

    qt-creator-linux-x86_64-opensource-2.5.2.bin 拷贝到linux系统中,在终端中把路径切换到qt-creator-linux-x86_64-opensource-2.5.2.bin所在的路径,运行命令:./qt-creator-linux-x86_64-opensource-2.5.2.bin  就会出现图形安装界面;下面的安装步骤就和我们在windows下安装软件差不多。

    注意:下的版本要和你的操作系统相匹配,32位的系统下对应32位的应用程序;

    2.5 编译Qt库源码

    2.5.1 解压

        将源码qt-everywhere-opensource-src-4.8.5.tar.gz 进行解压,并复制三份到/usr/local目录下,并分别命名为qt-pc,qt-x86,qt-arm。

    2.5.2 编译PC版

    进入qt-pc目录,执行如下操作:

    #./configure

    # make

    # make install

    编译过程中出现的问题:

    出错:Basic XLibfunctionality test failed!

    这个错误主要是因为,XLib库没有安装,所以在编译X11平台时,应该保证,以下命令正确执行:sudo apt-get install libx11-dev  libxext-dev libxtst-dev

    注意:可以使用 make confclean 命令 把以前的配置信息清除掉,然后再重新配置。

    2.5.3 编译x86版

    进入qt-x86目录,执行如下操作:

    # ./configure  -embedded x86    -qt-gfx-qvfb    -qt-kbd-qvfb   -qt-mouse-qvfb

    # make

    # make install

    安装过程比较长,没有碰到过错误。

    编译安装PC版中的 qvfb:

    进入qt-pc/tools/qvfb/目录,执行如下操作:

    #make

    编译完毕,将qt-pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.8.5/bin目录。

    编译qvfb时,出现了如下错误:

    x11keyfaker.cpp:48:34: 致命错误: X11/extensions/XTest.h:没有那个文件或目录

    编译中断。make: *** [.obj/release-shared/x11keyfaker.o] 错误 1

     

    解决方法:

            sudo apt-get install xorg-dev

     

    如果makefile中没有-lXtst选项,则修改makefile 中 LIBS 选项: 添加 -lXtst选项

     

    2.5.4 编译ARM版

    必须加上“-prefix /usr/local/Trolltech/QtEmbedded-4.8.5-arm ”参数, 不然安装后不在QtEmbedded-4.8.5-arm文件夹下,而是覆盖了QtEmbedded-4.8.5。

     

    # ./configure 

    -prefix  /usr/local/Trolltech/QtEmbedded-4.6.3-arm  

    -opensource 

    -confirm-license 

    -release -shared 

    -embedded arm 

    -xplatform qws/linux-arm-g++ 

    -depths 16,18,24 

    -fast 

    -optimized-qmake 

    -pch 

    -qt-sql-sqlite 

    -qt-libjpeg 

    -qt-zlib 

    -qt-libpng 

    -qt-freetype 

    -little-endian  -host-little-endian 

    -no-qt3support  

    -no-libtiff   -no-libmng 

    -no-opengl 

    -no-mmx  -no-sse  -no-sse2 

    -no-3dnow 

    -no-openssl 

    -no-webkit 

    -no-qvfb 

    -no-phonon 

    -no-nis 

    -no-opengl 

    -no-cups 

    -no-glib 

    -no-xcursor   -no-xfixes  -no-xrandr   -no-xrender 

    -no-separate-debug-info 

    -nomake examples   -nomake  tools   -nomake docs

     -qt-mouse-tslib  -I/usr/local/tslib/include  -L/usr/local/tslib/lib

    如果放弃配置,则使用命令:# make confclean

    编译:# make

    安装:# make install

     

    安装完成后,在/usr/local/Trolltech目录中有三个文件夹:Qt-4.8.5、QtEmbedded-4.8.5、QtEmbedded-4.8.5-arm。


    2.6 安装完后

    2.6.1 qvfb的测试






    运行qvfb,提示了如下错误,在网上也查了很多种解决办法,最后还是没有解决; 有的说要重新编译内核,并带上参数;觉得比较麻烦,就没有去尝试;不过这个错误并不影响我们仿真模拟Qt4程序。

    2.6.2 QtCreator编译前的配置

       X86的调试编译与调试

    (1)打开QtCreator ,工具---->选项--->构建和运行 进行设置,在Qt版本菜单下,手动设置选择qmake路径


    (2)打开QtCreator 对其进行设置,点击左边的项目,选择运行,对其进行设置,在参数里添加 -qws参数







    (3)编译与运行现在终端 输入命令:qvfb -width 800 -height 480 &    打开虚拟缓冲端;然后就可以在QtCreator对程序进行编译、运行了;运行结果如下:




    由于自己没有ARM版,现在移植的那部分还没有做。

     

    总结

        由于嵌入式实验的原因,自己想用Qt4编写一个俄罗斯方块的游戏,并把它移到ARM版上;就开始了Qt的交叉编译环境的搭建;自己足足花了4天半的时间;之前在CentOS上进行搭建的,但是出现了很多错误,并且这些错误的解决办法网上给的都是Ubuntu的解决办法,在第三天时,用CentOS实在搭不下去了,于是就换成了Ubuntu10.04 ,接下来虽然也遇到错误,但在网上也都能搜到相似的错误,唯有编译qvfb时,遇到的麻烦最多。可能我们会做一件我们觉得很难得事情或者之前我们从未涉及的领域,这时我们不要做无头的苍蝇,到处乱撞,应该有目的去撞;心里一定要知道完成这件事的大概流程,和需要我们拥有哪些知识,然后一步一步地去做。


    原文转自:http://blog.csdn.net/lpp0900320123/article/details/24876159



    • 发布于2015-06-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 本文以友善之臂的Mini6410嵌入式开发板为目标板,介绍ubuntu 12.04系统下,配置嵌入式Qt开发工具的过程。本文中介绍的工具、大部分步骤和脚本来自开发板附带资料光盘,但其默认配置环境为老旧的Fedora 9.0,在ubuntu中配置过程已需要修正。

    一、背景
        众所周知Qt是一个跨平台的开发工具,与本文相关的分支有3个,分别是Linux下的Qt桌面版(基于X Window),嵌入式桌面环境Qtopia(Qt Extended)和嵌入式基础类库Qt Embedded。

        嵌入式桌面版拥有集成开发工具Qt Creator,方便进行Qt程序的设计,默认配置用于开发桌面程序,进行交叉编译设置(有时间待后文详述)后,可以直接编译嵌入式程序。

            Qt Embedded也称Qt/E,是运行于嵌入式Linux的Qt基础类库,目前最高版本为4.8(不确定)。它的图形界面直接工作于Frame Buffer上,绕过了窗口管理系统,具有较高的效率,适于嵌入式环境。

            Qtopia是一个嵌入式桌面环境,以Qt Embedded(在某些版本中称Qtopia Core)为基础,在后期改名为Qt Extended。它提拥有一个桌面,并供了手机/PDA中常用的基本功能软件(如电话本等等),在4.4.3后官方停止开发(或改由开源社区维护)。

            不同的开发目标应当选择不同的开发工具和环境,如果读者不开发桌面程序,也不需要Qt Creator(自己写makefile),可以不用安装桌面版,但装上对后续配置还是有一定方便作用的。

        对嵌入式开发者来说,如果仅仅开发单独的图形界面程序,不需要嵌入式桌面的话,只使用Qt/E即可,没必要使用过时的Qtopia。

            友善之臂开发板默认的Qtopia环境是2.2,已经与4.x的Qt/E库不兼容,除了演示自带程序外,对开发而言几乎不堪用。开发板还提供了Qt Extended 4.4.3,但这个环境提供的是一个诺基亚功能机的界面,基本上也只能供学习研究使用了。所以建议读者,如果不是有直接针对Qtopia的开发需求,学习内容以Qt/E为主比较好,嵌入式桌面开发,不如交给Android去做。

            同样是开发图形界面程序,Qt与Android两种工具各有千秋。Android的优点是界面比较适合手机等移动终端的操作习惯,虚拟机对底层环境隔离比较充分,程序开发运行不用考虑各种不同的硬件和操作系统版本,不需要麻烦的配置,同时对Android原生支持的硬件(比如GPS)开发也比较容易。对一般应用程序开发而言,Android省力省心。但Android体积比较庞大,对系统要求较高,不少低端开发板跑起来非常吃力。Qt则正好相反,图形界面倾向于PC风格,与操作系统结合比较紧密,方便访问和管理众多设备,对系统要求较低。比如读写串口在Qt中轻而易举,使用Android开发就要用NDK库辅助,配置开发反而相当艰深。所以可以说Android是面向特殊的嵌入式环境——手机的专业快速开发工具,而Qt则是面向一般(复杂)嵌入式环境的通用工具。如果开发中不大与硬件打交道,可能Android更合适,反之不如选择Qt。

            附带说一句,现在Qt也有了for Android的版本,不过笔者以它适用于两类人:一类是拥有大把Qt代码想在Android环境中用,另一类是想用Android但不会也不想学Java和Android API。如果不是上述两类,笔者以为就基本上没必要研究这种非驴非马的东西。

    二、准备工作
        注意要在32位Ubuntu系统中进行配置,由于版本冲突多如牛毛,不要尝试64位系统。Qt开发环境需要不少工具包作为基础,有些可能是系统自带的,也有些可能是笔者先前配置系统时顺带安装的,读者可以参考推荐阅读中的系统配置过程。

        可通过以下链接下载安装包或源码包,或从友善之臂提供的资料光盘中查找(SDK在x86-qte包中,不过版本为2010.01):

              arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz(ARM交叉编译器)

              arm-qte-4.7.0-20101105.tar.gz(ARM上的Qt/E库)

              x86-qte-4.6.1-20100201.tar.gz(PC上运行的Qt/E模拟器)

              arm-qt-extended-4.4.3-20101105.tgz(ARM上运行的Qtopia)

              x86-qt-extended-4.4.3-20101003.tgz(PC上运行的Qtopia模拟器)

              qt-sdk-linux-x86-opensource-2010.05.1.bin(Qt SDK开发环境)

            x86版本的Qt用于在PC上仿真运行为ARM开发的Qt程序,需要虚拟framebuffer工具qvfb,而这个工具的源码正好由SDK提供了。

            Qt/E移植到开发板上还需要tslib库(用于触摸屏校正),需要使用版本控制工具git下载,如需要应先安装git:

        sudo apt-get install git

        然后将源码目录下载至当前目录:

        git clone https://github.com/kergoth/tslib

        为编译tslib库,还需要安装若干工具:

        sudo apt-get install autoconf automake libtool

        若不安装,编译时会出现错误:

            autoreconf: not found

        为编译Qt还要安装图形和视频开发包:

        sudo apt-get install xorg-dev

        sudo apt-get install libv4l-dev

        安装后一个包时,会报告依赖关系错误,在Ubuntu软件中心中搜索libv4lconvert0和libv4l-0卸载(先卸哪个都一样,两个会被一起卸载)后再运行上条命令。不要用apt卸载,它会要求同时卸掉几十个包。

        若不安装上述第一个包,会出现错误:

            X11/extensions/XTest.h:No such file or directory(没有那个文件或目录)

        不安装后一个,会出现错误:

            linux/videodev.h: No such file or directory(没有那个文件或目录)

        安装libv4l-dev后,还需要将头文件路径进行配置:

        sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/
        videodev.h

        如果以前做过编译内核或其他开发配置工作,系统可能已经自带了一套Qt工具集,与本文配置对象不兼容(很多人就是卡在这里了),应当删除:

        sudo rm /usr/bin/qmake

        sudo rm /usr/bin/qmake-qt4

        否则编译Qtopia时会出现错误:

            Bootstrap QBuild: .. FAIL

        网上很多介绍删除Qt Creator可以解决,其实是错的。

        根据Qt安装提示,还应该检查以下包是否安装:

            libglib2.0-dev

            libSM-dev

            libxrender-dev

            libfontconfig1-dev

            libxext-dev

            libgl-mesa-dev

            libglu-mesa-dev

        在Ubuntu 12.04中,除第一个外,其他包应该都是最新版,第一个包因依赖关系冲突无法安装,好在不影响编译和运行。

        注意:在拷贝粘贴命令时,其中某些字符可能被不同的编辑环境改变,特别是空格和符号,如命令执行出错,可以考虑在Linux命令行下删除空格和符号后手工输入一次。

    三、安装与编译
    1. 安装SDK

        进入sdk所在目录,在命令行中运行:

        ./qt-sdk-linux-x86-opensource-2010.05.1.bin

        然后会出现图形界面安装,按提示下一步即可,程序安装目录为:

        /opt/qtsdk-2010.05

    2. 安装arm编译器

        进入编译器压缩包所在目录,执行命令:

        tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz -C /

        注意文件名后的-C是参数,再后面的"/"表示解压目录。执行完之后会将编译器安装在/opt/FriendlyARM/toolschain/4.5.1目录下。

        安装后需要将编译器路径加入环境变量中,执行命令:

        gedit ~/.bashrc

        在文件最后加入一行:

        export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

    3. 编译tslib

        进入tslib目录,依次执行:

        ./autogen.sh

        ./configure --host=arm-linux --prefix="自定义安装目录xxx"

        make

        sudo make install

            configure命令中--prefix参数用来指定tslib的安装目录,例如"/home/xxx/lib/tslib",也可以不带此参数,则安装到默认目录/usr/local/tslib下,下文以"/xxx"指代tslib安装目录,请读者注意。

    4. 编译x86-qte-4.6.1

        解压x86-qte-4.6.1压缩包包,可以使用图形界面右键菜单解压,也可使用命令:

        gzip -dc x86-qte-4.6.1-20100201.tar.gz | tar -xvf -

        友善之臂在压缩包中提供了编译脚本build-all,脚本开头会将先前的安装配置目录删除,对初次配置没有必要,且脚本中的命令参数与前面安装的SDK版本不同,建议进入解压目录后,将以下几步保存为脚本执行或依次输入执行:     

        cd /opt/qtsdk-2010.05/qt/tools/qvfb/
        /opt/qtsdk-2010.05/qt/bin/qmake "QT_SOURCE_TREE=/opt/qtsdk-2010.05/qt"
        make
        cd - #返回上一个目录,即解压目录
        tar xfvz qt-everywhere-opensource-src-4.6.1.tar.gz
        cd qt-everywhere-opensource-src-4.6.1
        echo yes | ./configure -opensource -embedded x86 -xplatform qws/linux-generic-g++  -qt-libtiff -qt-libmng -qvfb
        make 
        sudo make install 
            x86-qte将被安装在/usr/local/Trolltech/QtEmbedded-4.6.1-i386目录下。

    5. 编译arm-qte-4.7.0

        解压arm-qte-4.7.0压缩包包,进入解压目录执行: 

        tar xfvz qt-everywhere-opensource-src-4.7.0.tar.gz
        cd qt-everywhere-opensource-src-4.7.0
        echo yes | ./configure -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-pc -no-mouse-linuxtp -no-neon -qt-mouse-tslib -I/xxx/include -L/xxx/lib
        make 
        sudo make install
        上述命令与友善之臂提供的脚本最大不同在configure命令中,一是参数顺序不同,二是在-qt-mouse-tslib参数后增加了-I和-L两项给出tslib头文件和库文件路径(/xxx是tslib安装目录)。这里的编译过程非常诡异,笔者至今也未明所以然,只能指出如下几点供读者参考:
        如不能正确设置tslib路径,将出现如下错误提示:

            The tslib functionality test failed!

            You might need to modify the include and library search paths by editing

            QMAKE_INCDIR and QMAKE_LIBDIR in

            /源码包解压目录/qt-everywhere-opensource-src-4.7.2/mkspecs/qws/linux-arm-g++.

        正常解决办法是进入错误提示中的路径,编辑文件qmake.conf加入两行:

        QMAKE_INCDIR = /xxx/include

        QMAKE_LIBDIR = /xxx/lib

        但诡异错误既出,正常办法多半是无效的,编辑文件后错误依旧。也有人建议改上述文件中的编译器名,但据笔者分析这种方法无道理(篇幅有限不赘),事实也未成功。直接在-qt-mouse-tslib参数后增加-I和-L两项也尝试了,同样无效。

        最后在偶然中改变了友善之臂脚本中configure命令参数的顺序,,改成本文这个样子,然后删除又输入了几个空格,编译就奇迹般的通过了。后来再试,拷贝的命令都不能成功,建议读者也改改空格碰碰运气。

            arm-qte将被安装在/usr/local/Trolltech/QtEmbedded-4.7.0-arm目录下。

    6. 编译x86-qtopia-4.4.3

        解压x86-qt-extended-4.4.3压缩包,进入解压目录,首先执行命令:

        tar xzf qt-extended-opensource-src-4.4.3.tar.gz

        将源码解压,在源码目录中找到文件:

        qt-extended-4.4.3/src/libraries/qtopia/qphoneprofile.cpp

        将其1026行改为:

        QPhoneProfile::Schedule &QPhoneProfile::Schedule::operator=(const Schedule &other)

        然后将下列命令保存为脚本执行:

        mkdir /opt/QtEmbedded-4.4.3-i386

        export QTOPIA_DEPOT_PATH=$PWD/qt-extended-4.4.3
        export QPEDIR=/opt/QtEmbedded-4.4.3-i386/

        export LC_ALL="zh_CN"
        export LC_TIME="zh_CN"
        export LC_MONETARY="zh_CN"
        export LC_ADDRESS="zh_CN"
        export LC_TELEPHONE="zh_CN"
        export LC_NAME="zh_CN"
        export LC_MEASUREMENT="zh_CN"
        export LC_IDENTIFICATION="zh_CN"
        export LC_NUMERIC="zh_CN"
        export LC_PAPER="zh_CN"
        export LC_CTYPE="zh_CN"
        export LANG="zh_CN"
        export LANGUAGE="zh_CN"

        cd $QPEDIR
        echo yes | $QTOPIA_DEPOT_PATH/configure -ui-type mobile -release -clean -sound-system oss -build-qt -no-sxe -no-ssl -no-v4l2 -no-vpn -no-phonon -no-libamr -dynamic-rotation -mediaengines cruxus -remove-mediaengine gstreamer,helix -pictureflow -remove-module bluetooth,drm -no-dbus -no-dbusipc -add-displaysize 240x320 -extra-qt-embedded-config "-qt-freetype -no-webkit -no-dbus -qt-gfx-transformed -qt-gfx-linuxfb" -extra-qt-config "-no-webkit" 2>&1 | tee ./qtopiaconfig.log

        bin/qbuild 2>&1 | tee ./qtopiamake.log
        bin/qbuild image
        对友善之臂自带脚本的修改主要有:
        ① 按网文说法更改了语言设置,不过似无必要(未详细考证),编译输出的提示中会有乱码,好在不影响结果。

        ② 将-sound-system参数值由alsa改为oss,否则会爆出alsa disabled错误。

        ③ 更改了编译输出目录为/opt/QtEmbedded-4.4.3-i386,方便以后使用。

            2>&1 | tee ./qtopia???.log语句作用是将编译过程中的输出信息同时输出到屏幕和log 文件中。

        编译成功后,还要从/opt/qtsdk-2010.05/qt/bin目录下拷贝qvfb文件到/opt/QtEmbedded-4.4.3-i386/sdk/qtopiacore/host/bin目录下。

    7. 编译arm-qtopia-4.4.3

            x86-qtopia-4.4.3的编译安装比较简单,友善之臂提供的编译安装脚本基本是可用的,笔者只是改了开头几个命令:

        #!/bin/bash

        mkdir /opt/QtEmbedded-4.4.3-arm/

        export QTOPIA_DEPOT_PATH=$PWD/qt-extended-4.4.3
        export QPEDIR=/opt/QtEmbedded-4.4.3-arm/
        export PATH=/opt/FriendlyARM/mini6410/linux/arm-gcc-4.4.1/bin/:$PATH

        export LC_CTYPE="en_US"
        从最后一行起,再往后与友善之臂原版的build-all脚本就完全一样了,修改目的还是将编译好的程序放在/opt/QtEmbedded-4.4.3-arm/目录下,方便以后使用。

    四、测试编译结果
        启动/opt/qtsdk-2010.05/qt/bin目录下的qfvb程序,然后进入/usr/local/Trolltech/QtEmbedded-4.6.1-i386/demos目录,任选一个子目录下的可执行文件,加-qws参数在命令行下执行,如执行成功则说明x86-qte编译成功。

        要测试x86-qtopia,进入/opt/QtEmbedded-4.4.3-i386目录,执行:

        ./bin/runqtopia

        将显示出一个诺基亚手机界面。


    本文转自:http://qpcwth.blog.163.com/blog/static/20993024620139151424822/

    • 发布于2015-06-30
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

Ubuntu下Qt嵌入式交叉编译开发环境搭建