美文网首页
Qt开发系列1——Qt环境搭建

Qt开发系列1——Qt环境搭建

作者: QuietHeart | 来源:发表于2020-10-25 21:48 被阅读0次

    Qt开发系列1——Qt环境搭建

    Qt环境搭建

    本文给出linux下Qt环境搭建的具体过程,尤其是嵌入式Qt的环境搭建;然后结合一个例子给出编译,运行Qt程序的方法。

    2011-02-19 19:53:09

    主要内容:

    • 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-x11-opensource-src-4.5.0.tar.bz2
    qt-embedded-linux-opensource-src-4.5.0.tar.bz2
    

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

    安装软件包

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

    $tar xjvf qt-x11-opensource-src-4.5.0.tar.bz2
    $cd qt-x11-opensource-src-4.5.0
    $sudo ./configure
    $sudo make
    $sudo make install
    

    2. 编译及安装qt-embedded-linux-opensource-src-4.5.0为x86版本

    $tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2
    $mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-x86
    $cd qt-embedded-linux-opensource-src-4.5.0-x86
    $sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -qvfb
    $sudo make
    $sudo make install
    

    3. 编译及安装qt-embedded-linux-opensource-src-4.5.0为arm版本

    $tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2
    $mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-arm
    $cd qt-embedded-linux-opensource-src-4.5.0-arm
    $sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm
    $sudo make
    $sudo make install
    

    4. 编译安装qvfb工具

    $cd qt-x11-opensource-src-4.5.0
    $cd /tools/qvfb
    $sudo make
    $sudo cp ../..bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin
    

    配置环境

    (export?)

    1. qt-x11

    $vi setenv_x11.sh
    

    添加如下内容:

    ##########
    QTDIR=/usr/local/Trolltech/Qt-4.5.0
    PATH=$QTDIR/bin:$PATH
    MANPATH=$QTDIR/doc/man:$MANPATH
    LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
    export QTDIR PATH MANPATH LD_LIBRARY_PATH
    ##########
    

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

    2. qt-embedded-x86

    $vi setenv_embeded_x86.sh
    

    添加如下内容:

    ##########
    QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-x86
    PATH=$QTEDIR/bin:$PATH
    LD_LIBRARY_PATH=$QTEDIR/lib:$LD_LIBRARY_PATH
    export QTEDIR PATH LD_LIBRARY_PATH
    ##########
    

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

    3. qt-embedded-arm

    $vi setenv_embeded_arm.sh
    

    添加如下内容:

    ##########
    QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm
    PATH=$QTEDIR/bin:$PATH
    LD_LIBRARY_PATH=$QTEDIR/lib:$LD_LIBRARY_PATH
    export QTEDIR PATH LD_LIBRARY_PATH
    ##########
    

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

    4. 测试环境

    $cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86
    $source setenv.sh
    $cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/books
    $qvfb -width 640 -height 480 &
    $./books -qws
    

    说明:我们在使用上述种环境之一时,分别运行对应的脚本即可,比如我们要用qt-x11:

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

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

    工作环境简介

    1. 关于编译及安装qt-x11-opensource-src-4.5.0

    这里,安装的是桌面上开发环境的qt库,用于pc机器上qt程序的开发。

    2. 关于编译及安装qt-embedded-linux-opensource-src-4.5.0为x86版本

    这里,安装的是x86系列嵌入式板子上开发环境的qt库,用于x86系列嵌入式机器上qt程序的开发。开发出来的程序pc上面编译之后,只能在x86体系板子上面运行,如果想要在机器上模拟运行,需要用qvfb(虚拟framebuffer).

    3. 关于编译及安装qt-embedded-linux-opensource-src-4.5.0为arm版本

    这里,安装的是arm系列嵌入式板子上开发环境的qt库,用于arm系列嵌入式机器上qt程序的开发。开发出来的程序pc上面编译之后,只能在arm体系板子上面运行,如果想要在机器上模拟运行,用qvfb(虚拟framebuffer)也是不行的,qvfb只是模拟x86体系的.这时需要:

    • 首先,将程序用qt-embedded-linux-opensource-src-4.5.0-x86编译。
    • 其次,编译好的程序在qvfb上面模拟运行。
    • 再次,运行成功后再用qt-embedded-linux-opensource-src-4.5.0-x86编译。
    • 最后,将成品复制到arm板子上即可运行。

    4. 关于编译安装qvfb工具

    qvfb是虚拟framebuffer,qvfb只能执行x86架构的应用程序,所以需要让qt-embedded生成关于x86的库和其他文件。

    前面编译安装qt的三个库之后,还有qvfb没有编译,需要到qt-x11-opensource-src-4.5.0中重新编译,这会在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下即可。

    其他

    错误情况

    注意:如果出现错误,出错信息可能为:

    Error opening framebuffer device /dev/fb0QScreenLinuxFb::connect: No such file or directory
    

    这种情况发生最多的是编译Qt-Embedded的x86版本,希望在qvfb上运行应用时使用者在第一步运行qvfb后第二步运行./myapp -qws现以上的提示错误。

    原因是Qt-Embedded在查找系统的显示设备时,默认去寻找LinuxFb,也即Linux的/dev/fb0设备,但是如果Qt- Embedded安装了其它显示设备,比如qvfb,则可以在qvfb上显示,但是需要一个插件(或者说驱动,可能会和设备驱动混淆),使Qt- Embedded能使用qvfb。

    为了作到这一点,需要在编译Qt-Embedded时的configure命令加上如下选项

    $./configure -plugin-gfx-qvfb -plugin-kbd-qvfb -plugin-mouse-qvfb
    

    $./configure -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
    

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

    $cd qt-embedded-linux-opensource-src-4.5.1/src/plugins/gfxdrivers/qvfb/$/usr/local/Trolltech/QtEmbedded-4.5.1/bin/qmake$ sudo make install
    

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

    PC上Qt程序的运行

    编写一个qt程序的全过程是:

    1. 写代码

    2. 执行 qmake -project

      这一步生成一个.pro文件,描述了配置信息以及你的程序所包含的文件。

    3. 执行 qmake

      这一步根据.pro文件生成Makefile

    4. 执行 make

      这一步开始编译。

    这里,如果想要添加程序安装路径的话,可以在.pro文件中添加如下语句:

    target.path = /usr/local/myprogram
    target.files = *.cpp qtDemo
    unix:target.extra = ls && echo 1
    INSTALLS += target
    

    这样,执行make install之后,会把应该安装的文件(*.cpp和qtDemo文件)安装在target.path所指定的路径中。如果不指定target.files也会自动确定安装一些文件,默认是qtDemo;

    另外,target.extra是自己定义的一些东西,这一行也可以省略,这一行的意思是说,在unix域中(防止到其他的平台上面不能用),执行install之前限制性extra所指定的命令ls && echo 1。

    除了安装路径的对象target之外,还有文档路径的对象:documentation

    qmake参考文档:

    Ubuntu上面实践Qt的最简过程

    qt内容很多,前面介绍的用源代码安装qt的方法有点麻烦,这里介绍搭建qt环境以及编写运行一个qt测试程序的最简步骤,假设系统是ubuntu, 过程如下:

    1.安装qt库

    $sudo apt-get install libqt4-dev
    

    这里,120M左右,2m的带宽花费了不到半个小时的时间。

    2.写源代码

    $mkdir testQt
    $cd $_
    $vi main.cpp
    

    代码如下:

    #include <QApplication>
    #include <QWidget>
    int main(int argc, char *argv[])
    {
          QApplication app(argc, argv);
          QWidget window;
          window.show();
          return app.exec();
    }
    

    源代码没什么好解释的,自己看官方文档吧。参考:http://doc.qt.nokia.com/

    3.编译运行

    $qmake -project
    $qmake
    $make
    $./testQt
    

    至此为止。每一步的含义如下:

    • qmake -project:读取源代码目录,生成一个testQt.pro文件,文件包含了将要编译的程序的选项(如调试选项,资源文件位置),以及源代码,头文件位置等。
    • qmake:根据testQt.pro文件提供的信息,自动生成一个Makefile文件。
    • make:读取Makefile文件信息,执行Makefile中的命令,真正实现编译,编译后生成可执行文件testQt.
    • ./testQt:运行程序,这样会弹出一个空白的窗口。

    更多内容

    有待更新……

    作者:QuietHeart
    Email:quiet_heart000@126.com

    相关文章

      网友评论

          本文标题:Qt开发系列1——Qt环境搭建

          本文链接:https://www.haomeiwen.com/subject/egkvmktx.html