Qt嵌入式開發環境搭建


1、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也就三種:面向桌面的x十一、面向嵌入式的Qt/E、以及面向嵌入式帶各類應用程序的Qtopia桌面系統!!!linux

2、好比是Qt的各類版本介紹

一、Qt的安裝程序(包含了QtCreator,QtAssistant)
Windows--x86--msvc2012_64_opengl :表示window平臺,msvc2012能夠與VS2012進行結合使用,64位應用程序,要求電腦裝的是64位操做系統;opengl表示支持openGL的繪圖模式
Windows--x86--mingw48_opengl :window平臺下的mingw48編譯器進行編譯。
二、Qt的庫的源碼包
三、Qt安裝包的下載網址:http://qt-project.org/downloads 若是想下載Qt的之前版本,能夠在上面網址的最下面的一欄有個Archive for old versions ,進去就能夠下載qt的之前版本了。web

3、嵌入式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/ 進行下載。sql

2.環境的搭建
2.1 系統環境

主機操做系統:ubuntu10.04
主機編譯器:gcc4.4.3,
交叉編譯器:arm-linux-gcc-4.3.3ubuntu

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 等一會出來文本編輯器後在文件最後(最後一行)加上 下面代碼windows

export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH
從新打開一個終端,使上面的配置文件生效;輸入命令 arm-linux-gcc -v; 若是出現gcc的版本信息,就表明交叉編譯器安裝成功,會輸出gcc的版本號;bash

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.五、QtEmbedded-4.8.五、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的交叉編譯環境的搭建;惟有編譯qvfb時,遇到的麻煩最多。

相關文章
相關標籤/搜索