zoukankan      html  css  js  c++  java
  • QT开发环境搭建

    一、Qt发展史

    1991年,由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架;

    2008年,Nokia从Trolltech公司收购Qt, 并增加LGPL的授权模式;

    2011年,Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile, Qt Commercial由Digia负责;

    2012年,诺基亚宣布将Qt软件业务出售给芬兰IT服务公司Digia。 2013年,7月3日,Digia公司Qt开发团队在其官方博客上宣布Qt 5.1正式版发布。

    二、自问自答之问题探索

    1. Qt SDK是什么?

    是一个编译好、直接可以使用的软件开发包,里边包含:编译好的Qt库、IDE集成开发工具;  

    但是这些库和开发工具只运行在Windows、Linux/X11、Mac这三种主流的操作系统上边;  

    如果要把Qt移植到嵌入式平台上边的话是需要重新编译Qt库的源码(使用交叉工具)。

    2. 了解官方的开发资源

    (1)访问Qt的官方网站 http://www.qt.io/,进入“Download”栏 ,根据开发用途选择Qt版本:

    ①商用-收费;②内部部署、个人使用、学生使用;③基于LGPL或GPL协议的开放源代码式开发。

    毫不犹豫,选择(2)或(3),结果一样,选(2)的过程中会问你要不要捐赠一些钱。

    (2)接着来到下载网页 http://www.qt.io/download-open-source/ ,在这个网页中的横栏列表如下:

    Qt Online Installers   在线Qt安装器,这个安装器会帮你下载并安装;
    Qt Offline Installers   离线安装,要自己下载完之后自己动手安装;
    Qt Creator                官方的IDE开发工具;
    Other Downloads       其他下载:有以下两点值得关注的:
    -->①Qt repositories at code.qt.io  Qt贮藏室-实质就是:Qt项目Git存储库,项目哦!
    -->②Archive for old versions       旧版本的归档文件:在这里可以找到所有之前的Qt开发包【极力推荐这里下载】
    Pre-releases             发布版本,应该是指最新的发布版本

    (3)从旧版本的归档中下载 http://download.qt.io/ 简单介绍

    主目录介绍:
    snapshots/             快照:
    online/                   在线资源:
    official_releases/     官方发布的稳定版本 【这里下载SDK包或Qt开发源码】
    ministro/                部门,指的是 Android 方面的资料
    learning/                学习指导方面的视频文档资料,貌似大部分是Qt Quick的
    development_releases/  开发版本,包括最新正在测试的版本、以前的测试版本
    community_releases/     社区发布版,“民间版”
    archive/                        官方归档目录,“归档”我的理解就是保存有价值的版本文件

    3.使用官方资料部署开发环境

    (1)Windows 7 - 64bit

    • 在官网下载QtCreate,安装;
    • 选好要使用的Qt库版本:qt-opensource-windows-x86-mingw482-4.8.6-1.exe;
    • 安装Qt代码编译器:
      ①Microsoft Visual C++ :一般是VS2010这类开发软件使用;
      ②MinGW:在Windows上叫做 MinGW(Minimalist GNU for Windows)
      推荐选择MinGW-w64版本的,下载地址http://sourceforge.net/projects/mingw-w64/,下载mingw-w64-install.exe
      接着进行在线安装,注意在安装窗口的“architecture”项选择:x86_64,“version”选:4.8.2,这个要和Qt库要求对应,其他自由发挥。
    • 安装完之后修改win7系统的环境变量“path”,添加上安装完之后“xxx/mingw-w64/bin”路径
    • 安装Qt库,放到最后是因为安装的过程要使用到MinGW编译器;
    • 剩下的就是如何配置使用QtCreate的问题。

    (2)Ubuntu 12.04 - 64bit

    • 确保安装了:

      sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev libxrender-dev

    • 从官网下载源码包:qt-everywhere-opensource-src-4.8.6.tar.gz
    • 放到Ubuntu系统中,解压,解压之后的源码默认编译配置就是适用于PC版的Linux系统,所以不用再去修改编译器相关的东西。
    • 配置生成Makefile文件:./configure   不带配置选项的时候是生成动态库
    • make            开始编译
    • make install   开始安装,默认安装在 /usr/local/Trolltech/Qt-4.8.6
    • 配置环境变量
      vim /etc/bash.bashrc    添加下面一行的内容:
      export PATH=/usr/local/Trolltech/Qt-4.8.6/bin:$PATH
    • 使环境变量生效
      source /etc/bash.bashrc 
    • 查看qmake版本号:qmake -v,显示上边的Qt版本号即安装成功。
    • 编写测试程序:main.cpp,放在test目录下
      #include <QApplication> 
      #include <QPushButton>
      int main(int argc,char *argv[])
      {

            QApplication app(argc,argv);

            QPushButton button("hello button");
            button.show();

            app.exec();
            return 0;

      }

    ①qmake -project   //生成工程文件test.pro

    ②添加模块:vim test.pro
       QT += widgets
    ③qmake               //生成Makefile
    ④make                 //编译Qt工程
    ⑤./test                 //开始运行,结果:

    【附注:编译版本】
    Debug版:调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序
    Release版:发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。

    (3)嵌入式平台Qt库编译 - A10处理器

    主机编译环境:Ubuntu12.04-64bit OS
    ①确保主机已经安装好交叉编译器(A10支持硬件浮点计算)注:如果Ubuntu上已经安装过其他版本的交叉编译器,要把相应的环境变量注释掉的。

    sudo apt-get install binutils-arm-linux-gnueabihf gcc-arm-linux-gnueabi
    sudo apt-get install gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf
    sudo apt-get install g++-arm-linux-gnueabihf

    ②同样使用Ubuntu12.04的Qt源码,qt-everywhere-opensource-src-4.8.6.tar.gz,解压之后修改编译器--交叉编译工具:

    sudo vim mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf ,修改如下内容:

    QMAKE_CC = arm-linux-gnueabihf-gcc
    QMAKE_CXX = arm-linux-gnueabihf-g++
    QMAKE_LINK = arm-linux-gnueabihf-g++
    QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++
    QMAKE_AR = arm-linux-gnueabihf-ar cqs
    QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
    QMAKE_STRIP = arm-linux-gnueabihf-strip 

     ③不使用优化:修改如下文件

    sudo vim mkspecs/common/g++-unix.conf 修改为:
    QMAKE_LFLAGS_RELEASE += -Wl,-O0

     ④生成Makefile文件:编译静态库、不编译demo、tool等
    ./configure -static -nomake demos -nomake examples -nomake tools -no-exceptions
    期间选择:o  ->  y
    ⑤make    开始编译
    ⑥make install  安装库到默认的路径/usr/local/Trolltech/QtEmbedded-4.8.6-arm,之后Qt Creator就可以使用这个目录下边的qmake等工具来编译嵌入式平台的Qt程序了。
    ⑦最后:要让交叉编译的Qt可执行程序在开发板上运行起来还需要把QtEmbedded-4.8.6-arm目录下的include和lib目录文件拷贝到开发板Linux操作系统的根目录的/include和/lib目录中。

  • 相关阅读:
    C# 压缩组件介绍与入门
    《Effective C#》快速笔记(六)-
    原生JS实现简单富文本编辑器
    oracle 给表字段把VARCHAR2 换成 CLOB
    java.lang.NoClassDefFoundError: javax/servlet/ServletOutputStream
    Idea中Module is not specified解决办法
    JS用正则替换特殊字符
    对List<Map>里的map的某个属性重复的值进行处理的方法
    ……
    使用原生js 实现点击消失效果
  • 原文地址:https://www.cnblogs.com/lubiao/p/4989805.html
Copyright © 2011-2022 走看看