一、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目錄中。
