zoukankan      html  css  js  c++  java
  • 深度解析嵌入式QT开发环境搭建

    本篇文章介绍的是嵌入式QT开发环境搭建,之前有接触过QT的其他开发环境,那么希望本篇文章对你有所帮组。对于嵌入式相信各位都有了解。

    Qt的各个版本简介:

    1.什么是QT

    Qt是一个完整的C++应用程序开发框架。它包含一个类库,和用于跨平台开发及国际化的工具。Qt API在所有支持的平台上都是相同的,Qt工具在这些平台上的使用方式也一致, 因而Qt应用的开发和部署与平台无关。

    2.什么是Qtopia

    Qtopia是一个面向嵌入式Linux的全方位应用程序开发平台,同时也是用于基于Linux的PDA(个人数字助理),智能电话(Smartphone)以及其他移动设备的用户界面。简单地说,Qtopia实质上是一组关于PDA和智能电话的应用程序结合,如果需要开发这类产品可以在这组程序的基础上迅速构建出PDA或者智能电话。Qtopia实质上依赖Qt/Embedded。

    3.什么是Qt/Embedded

    Qt/Embedded是一个完整的自包含GUI和基于Linux的嵌入式平台开发工具。这个开发工具的名字好像最容易混淆,当然Qt/Embedded是最熟悉的名字,好像Qtopia Core说的也是它。最近,奇趣公司又该名字了,它的新名字叫做qt-embedded-linux-xxxx,看来这个Qt/Embedded的马甲还很多哈。

    下面就是搭建Qt开发平台了,我的平台是fedora core 7,需要的Qt版本有两个:

    1. qt-x11-opensource-src-4.3.2.tar.gz  
    2. qt-embedded-linux-opensource-src-4.4.0-rc1.tar.bz2 

    qt-x11版本可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。下面是安装步骤:

    1. 解压这两个qt包

    1. a) tar –jxvf qt-x11-opensource-src-4.3.2.tar.gz  
    2. b) tar –jxvf   
    3. qt-embedded-linux-opensource-src-4.4.0-rc1.tar.bz2  
    4. c) cp qt-embedded-linux-opensource-src-4.4.0-rc1  
    5. qt-embedded-linux-opensource-src-4.4.0-rc1-x86  
    6. d) mv qt-embedded-linux-opensource-src-4.4.0-rc1  
    7. qt-embedded-linux-opensource-src-4.4.0-rc1-arm 

    这里,qt-embedded有两个复制:qt-embedded-linux-opensource-src-4.4.0-rc1-x86qt-embedded-linux-opensource-src-4.4.0-rc1-arm,根据他们的名字可以知道前者是适合x架构的,后者适合arm架构为什么需要两个呢?如果有开发板的话,可以只编译qt-embedded版本成arm架构的就可以了,但是很多时候用qvfb的话,开发会方便很多,所以多编译一个x86架构的也不错。这里是否有些疑问,qt-x11也是适合x86结构的,这不是和qt-embedded重复了吗?

    答案是这样的,qt-embedded版本只能在嵌入式板子上面运行,编译成x86架构的程序也只能在x86的嵌入式板子上跑。前面说过,我们需要qvfb来开发,但是qvfb只能执行x86架构的应用程序,所以需要让qt-embedded生成关于x86的库和其他文件。而将qt-embedded编译成arm,又是为什么呢?道理很简单,我最终的qt应用程序需要在arm架构上面运行,当然需要这方面的库,所以编译成arm也就顺理成章了。

    简单的总结一下,首先,使用qt-x11提供的库和开发工具开发出qt应用程序,然后使用qt-embedded关于x86库和工具再次编译我们开发qt应用程序,这是所得到的可执行文件就可以在qvfb上运行了,最后,使用qt-embeddedd的arm库再次编译就可以得到在arm上能运行的可执行程序。很明显,如果有开发板,第二步是可要可不要的(最好是要),如果没有开发板的话,第三步也就没必要了,这样就不需要将qt-embedded编译成适合arm架构的。

    具体步骤与说明:

    1. 下载源码包

    1. qt-x11-opensource-src-4.5.0.tar.bz2  
    2. qt-embedded-linux-opensource-src-4.5.0.tar.bz2 

    下载地址:ftp://ftp.qtsoftware.com/qt/source/

    2.编译及安装qt-x11-opensource-src-4.5.0

    qt-x11版本可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。

    1. tar xjvf qt-x11-opensource-src-4.5.0.tar.bz2  
    2. cd qt-x11-opensource-src-4.5.0  
    3. ./configure  
    4. make  
    5. make install 

    历经漫长的编译过程,约一个半小时,默认安装在/usr/local/Trolltech/Qt-4.5.0下.编译完成后源程序不要删除,还有用。

    3.编译及安装qt-embedded-linux-opensource-src-4.5.0

    在用户目录下建立一个src目录,用于存放编译源文件qt-embedded-linux-opensource-src-4.5.0.tar.bz2。将其解压得到qt-embedded-linux-opensource-src-4.5.0,重命名为qt-embedded-linux-opensource-src-4.5.0-x86.再次解压qt-embedded-linux-opensource-src-4.5.0.tar.bz2,并重命令为qt-embedded-linux-opensource-src-4.5.0-arm.为什么有两个复制呢?我们可以从他们的名字上就不难看出前者是适合x架构的,后者适合arm架构的,如果有开发板的话,可以只编译qt-embedded版本成arm架构的就可以了,但是很多时候用qvfb的话,开发会方便很多,所以多编译一个x86架构的也不错。

    1. mkdir ~/src  
    2. mv qt-embedded-linux-opensource-src-4.5.0.tar.bz2 ~/src  
    3. tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2  
    4. mv qt-embedded-linux-opensource-src-4.5.0  
    5. qt-embedded-linux-opensource-src-4.5.0-x86  
    6. tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2  
    7. mv qt-embedded-linux-opensource-src-4.5.0  
    8. qt-embedded-linux-opensource-src-4.5.0-arm  
    9. cd qt-embedded-linux-opensource-src-4.5.0-x86  
    10. ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86   
    11. -embedded  
    12. x86 -qvfb  
    13. make  
    14. make install  
    15. -------OK!qt-embedded-x86被安装在/usr/local/Trolltech/QtEmbedded-4.5.0-x86下.  
    16. cd qt-embedded-linux-opensource-src-4.5.0-arm  
    17. ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm   
    18. -embedded  
    19. arm  
    20. make  
    21. make install 

    qt-embedded-arm被安装在/usr/local/Trolltech/QtEmbedded-4.5.0-arm下.。

    4.至此我们已经安装好了qt-x11版,即在PC机上运行的QT,qt-embedded-x86版(x86体系的嵌入式板子上运行的QT)和qt-embedded-arm(arm板子上运行的QT).

    设置环境变量

    (1)qt-x11:

    1. vi setenv.sh 

    添加如下内容:

    1. PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH  
    2. LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.5.0/lib:$LD_LIBRARY_PATH 

    保存退出.移到/usr/local/Trolltech/Qt-4.5.0中。

    (2)qt-embedded-x86:

    1. vi setenv.sh 

    添加如下内容:

    1. QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-x86  
    2. PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin:$PATH  
    3. LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/lib:$LD_LIBRARY_PATH 

    保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-x86中。

    (3)qt-embedded-arm:

    1. vi setenv.sh 

    添加如下内容:

    1. QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm  
    2. PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin:$PATH  
    3. LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib:$LD_LIBRARY_PATH 

    保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-arm中。

    我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:

    1. cd /usr/local/Trolltech/Qt-4.5.0  
    2. source setenv.sh 

    然后就可以用qmake designer等工具了.

    5.做到这一步还有qvfb没有编译,到qt-x11-opensource-src-4.5.0中重新编译qvfb即可

    1. cd qt-x11-opensource-src-4.5.0  
    2. cd /tools/qvfb  
    3. make 

    --会在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下

    cp ../..bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin

    6.做一个测试

    1. cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86  
    2. source setenv.sh  
    3. cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/books  
    4. qvfb -width 640 -height 480 &  
    5. ./books -qws 

    出错信息一般为

    Error opening buffer device /dev/fb0QScreenLinuxFb::connect: No such file  ordirectory这种情况发生最多的是编译Qt-Embedded的x86版本,希望在qvfb上运行应用时

    使用者在第一步运行qvfb后,第二步运行./myapp -qws,出现以上的提示错误。原因是Qt-Embedded在查找系统的显示设备时,默认去寻找LinuxFb,也即Linux的/dev/fb0设备,但是如果Qt-Embedded安装了其它显示设备,比如qvfb,则可以在qvfb上显示,但是需要一个插件(或者说驱动,可能会和设备驱动混淆),使Qt-Embedded能使用qvfb。 为了作到这一点,需要在编译Qt-Embedded时的configure命令加上如下选项

    1. ./configure -plugin-gfx-qvfb -plugin-kbd-qvfb -plugin-mouse-qvfb   
    2. 或./configure -qt-gfx-qvfb -qt-kbd-qvfb  

    -qt-mouse-qvfb如果,你不想重新编译Qt-Embedded,也可以单独编译qvfb的gfxdrivers,命令如下

    1. $ cd   
    2. qt-embedded-linux-opensource-src-4.5.1/src/plugins/gfxdrivers/qvfb/$/usr/local/Trolltech/QtEmbedded-4.5.1/bin/qmake$  

    sudo make install对应所在的路径,在大家的机器上可能不尽相同,领会意思就行

    From: http://mobile.51cto.com/symbian-267829_all.htm

  • 相关阅读:
    Power BI 根据用户权限动态生成导航跳转目标
    Power BI Tooltips 增强功能
    Power BI refresh error “could not load file or assembly…provided impersonation level is invalid”
    SQL 错误代码 18456
    如何使用SQL Server Integration Services从多个Excel文件读取数据
    通过表格编辑器将现有表引入Power BI数据流
    Power BI 中动态增长的柱状图
    ambari2.7.3离线安装hdp3.1.0时,ambari-hdp-1.repo中baseurl无值
    ambari 安装 cannot download file mysql-connector-java from http://8080/resource/mysql-connector-java.jar
    洛谷P4180 [BJWC2010]严格次小生成树
  • 原文地址:https://www.cnblogs.com/ganrui/p/3707407.html
Copyright © 2011-2022 走看看