專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

Ubuntu9.10平臺(tái)下對(duì)Qt4.50嵌入式開(kāi)發(fā)環(huán)境的安裝

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年03月29日   【字體:

       近期計(jì)劃學(xué)習(xí)嵌入式編程,所以開(kāi)始學(xué)習(xí)Qt,原來(lái)知道嵌入式門檻高,經(jīng)過(guò)這兩天的測(cè)試得出結(jié)論:的確不低。


      滿打滿算安裝Qt已經(jīng)花了我一周的時(shí)間(還有很多朋友和我一起搞的),接下來(lái)會(huì)在花一周的時(shí)間把這些經(jīng)驗(yàn)和資料整理出來(lái),一是防止自己忘記,二十給大家有個(gè)借鑒,三是如果有更方便更簡(jiǎn)潔的方法請(qǐng)網(wǎng)友一定告訴我,因?yàn)檫@個(gè)安裝過(guò)程是很痛苦的。


        首先把安裝需要的文件全部列舉出來(lái):

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/ )

arm-linux-gcc-4.3.2.tgz
(我是在友善的micro2440資料光盤里得到的)

zlib-1.2.3.tar.gz
                             (zlib軟件包所包含的庫(kù)經(jīng)常被一些軟件的壓縮或解壓縮函數(shù)用到,所以安裝文件的時(shí)候經(jīng)常會(huì)用到,可以參考這篇文章:http://hi.baidu.com/%CB%E6%B7%E7%B0%BF%CF%E8/blog/item /15ff00a4176c73ff9152ee69.html)


我的虛擬機(jī)平臺(tái)是Vmware 7 ,Linux版本是Ubuntu 9.10 , Qt安裝的版本是4.50。
好的,下面我就開(kāi)始安裝Qt嵌入式開(kāi)發(fā)環(huán)境:


第一步:為了獲得比較快的更新速度,我們可以增加一些臺(tái)灣的源,同時(shí)更新一下g++編譯器和x11庫(kù)(所謂x11就是指 x window),(參考文章:http://hi.baidu.com/lastnightcode/blog/item/4dd8ab60f12c78d7e7113a24.html)

方法:

1.     sudo gedit /etc/apt/sources.list
編輯你的源列表,在最后添加下面列表中的源(注意不要全部添加),復(fù)制到你的列表中,然后保存列表。

deb http://tw.archive.ubuntu.com/ubuntu/ karmic main universe restricted multiverse
deb http://tw.archive.ubuntu.com/ubuntu/ karmic-updates universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu/ karmic-proposed universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu/ karmic-security universe main multiverse restricted
deb http://tw.archive.ubuntu.com/ubuntu/ karmic-backports main multiverse restricted universe
deb-src http://tw.archive.ubuntu.com/ubuntu/ karmic main universe restricted multiverse
deb-src http://tw.archive.ubuntu.com/ubuntu/ karmic-security universe main multiverse restricted
deb-src http://tw.archive.ubuntu.com/ubuntu/ karmic-updates universe main multiverse restricted
deb-src http://tw.archive.ubuntu.com/ubuntu/ karmic-proposed universe main multiverse restricted
deb-src http://tw.archive.ubuntu.com/ubuntu/ karmic-backports universe main multiverse restricted

2.   sudo aptitude update    更新源列表信息

3. 更新g++和libx11

sudo apt-get install libc6-dev g++ gcc

sudo apt-get install libx11-dev

 

第二步:更新你的系統(tǒng)的更新管理器

方法:系統(tǒng) --   系統(tǒng)管理 --   跟新管理器

 

 

第三步:安裝arm-linux-gcc-4.3.2.tgz

1,我們把a(bǔ)rm-linux-gcc-4.3.2.tgz文件放到了home目錄下,然后切換到相應(yīng)目錄

2, # sudo tar xvzf arm-linux-gcc-4.3.2.tgz -C /
注意:C 后面有個(gè)空格,并且 C 是大寫的,它是英文單詞“Change”的第一個(gè)字母,
在此是改變目錄的意思。

執(zhí)行該命令,將把 arm-linux-gcc 安裝到/usr/local/arm/4.3.2 目錄




3,    把編譯器路徑加入系統(tǒng)環(huán)境變量,運(yùn)行命令
# sudo gedit /root/.bashrc
編輯/root/.bashrc 文件,在最后一行加上 export PATH=$PATH:/usr/local/arm/4.3.2/bin
保存退出。如圖:



4, 重新登錄系統(tǒng),使以上設(shè)置生效,在命令行輸入 arm-linux-gcc –v,會(huì)出現(xiàn)如下信息,
這說(shuō)明交叉編譯環(huán)境已經(jīng)成功安裝。

如果在這里出現(xiàn)問(wèn)題,請(qǐng)參看 “ 交叉編譯環(huán)境的建立” 一文。


第四步:安裝zlib-1.2.3.tar.gz

可以到zlib官方網(wǎng)站:http://www.zlib.net下載 zlib-1.2.3.tar.gz ,也可以在ubuntu中

$wget http://www.zlib.net/zlib-1.2.3.tar.gz     用這種方式下載文件包

我們這里已經(jīng)下載好了文件并把zlib-1.2.3.tar.gz 文件放到了home目錄下,然后切換到相應(yīng)目錄   

$ tar -xvzf zlib-1.2.3.tar.gz
$ cd zlib-1.2.3.tar.gz
$ ./configure
$ make
$ sudo make install

第五步安裝新立德的軟件更新包

如果有的Ubuntu的版本事先安裝好了,這一步就可以跳過(guò),不過(guò)大家最好看下,否則會(huì)在安裝qt-x11-opensource-src-4.5.0的時(shí)候出現(xiàn)   /usr/bin/ld:cannot find - lXext    錯(cuò)誤。

大家可以在 系統(tǒng) -- 系統(tǒng)管理 -- 新立德軟件包管理 找到新立的軟件包,然后搜索 libxext6 , libxext-dev 這個(gè)是兩個(gè)主要的。順便也可以把其他相關(guān)的包更新 如:libfreetype6-devlibavahi-gobject-dev , libsm-devlibxrender-dev , libfontconfig1-dev

第六步:編譯及安裝qt-x11-opensource-src-4.5.0

qt-x11版本可以產(chǎn)生Qt開(kāi)發(fā)工具,如designer等等,最重要的是可以得到qvfb,嵌入式的開(kāi)發(fā)有了qvfb,就可以不需要實(shí)際的開(kāi)發(fā)板,也可以開(kāi)發(fā)Qt應(yīng)程序。qt-embedded版本就是專門用于嵌入式方面的版本。

方法:

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

歷經(jīng)漫長(zhǎng)的編譯過(guò)程,我這里用了5個(gè)小時(shí),默認(rèn)安裝在/usr/local/Trolltech/Qt-4.5.0下.這時(shí)候在/usr/local/Trolltech/Qt-4.5.0/bin這個(gè)目錄下,應(yīng)該可以找到qmake 這個(gè)文件。然后打開(kāi)終端

$ cd /usr/local/Trolltech/Qt-4.5.0/bin
$ qmake

會(huì)出現(xiàn)qmake的幫助文檔:

Usage: qmake [mode] [options] [files]

QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
..........

編譯完成后源程序不要?jiǎng)h除,還有 用。這里一定要注意,千萬(wàn)不要因?yàn)榭臻g不夠了而刪掉編譯好的源程序,因?yàn)槲覀兿旅孢要編譯qvfb,要用到這些編譯好的源代碼。
到此時(shí) 我們QT4.5已經(jīng)安裝好了。此時(shí) 諾基亞已經(jīng)推出了QT Creator,這個(gè)裝一些也是很不錯(cuò)的,在軟件包管理器里面直接搜索然后標(biāo)記安裝就可以了,速度是很慢的,一定要形容的話龜速,所以大家一定要有耐心。 如果你不想裝QT Creator IDE的話,這一步可以略過(guò)。


第七步:編譯及安裝qt-embedded-linux-opensource-src-4.5.0.tar.bz2

方法:
1,在home目錄下分別解壓縮qt-embedded-linux-opensource-src-4.5.0.tar.bz2 為兩個(gè)文件夾
分別為 qt-embedded-linux-opensource-src-4.5.0-x86
              qt-embedded-linux-opensource-src-4.5.0-arm

2,安裝qt-embedded-linux-opensource-src-4.5.0-x86


cd qt-embedded-linux-opensource-src-4.5.0-x86
     ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -qvfb
//執(zhí)行configure文件
make                                         //編譯
sudo make install                   //安裝           

3,安裝qt-embedded-linux-opensource-src-4.5.0-arm


cd qt-embedded-linux-opensource-src-4.5.0-arm
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm
make                               //編譯
sudo make install           //安裝   

這樣就安裝完畢了,此時(shí)我們可以看到在/usr/local/Trolltech/   目錄下多出來(lái)兩個(gè)文件夾分別是    QtEmbedded-4.5.0-arm    和    QtEmbedded-4.5.0-x86    在她們的bin目錄下都可以找到qmake 這個(gè)文件。

第八步:重新編譯qvfb

 

 

第九步:測(cè)試

 

 

 

 

cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/books

qvfb -width 640 -height 480 &

./books -qws

是提示找不到gvfb的

但是系統(tǒng)卻給了提示,說(shuō)可以用

sudo apt-get install qt3-dev-tools-embedded             修復(fù),

 

然后上面的測(cè)試就通過(guò)了

如圖

這個(gè)界面是在qvfb -width 640 -height 480 &后出現(xiàn)的,也就是我們的qvfb

然后在終端里輸入

./books -qws

然后如圖

 

 

 

 

 

 

后記:

      在使用的時(shí)候無(wú)論 qt-x11-opensource-src-4.5.0 還是 qt-embedded-linux-opensource-src-4.5.0-x86
qt-embedded-linux-opensource-src-4.5.0-arm    都要修改環(huán)境變量 ,所以建立一個(gè)腳本方便以后使用。

(1)qt-x11:      

建立一個(gè)文本,然后修改名字為setenv.sh,復(fù)制藍(lán)色內(nèi)容進(jìn)去

添加如下內(nèi)容:

PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH
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:

 

 

 

做到這一步還有qvfb沒(méi)有編譯,到qt-x11-opensource-src-4.5.0中重新編譯qvfb即可

 

 

cd qt-x11-opensource-src-4.5.0

cd /tools/qvfb

make

 

 

會(huì)在qt-x11-opensource-src-4.5.0/bin下生成qvfb這個(gè)文件,

 

 

 

 

我們將它c(diǎn)opy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin

 

 

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

 

其實(shí)呢,這一步是經(jīng)常有問(wèn)題的,因?yàn)閁buntu總會(huì)編譯失敗,報(bào)錯(cuò)。

錯(cuò)誤1 cannot find -lXtst

在上面我們安裝新立德的安裝包的時(shí)候其實(shí)已經(jīng)把這個(gè)問(wèn)題解決了,如果大家出現(xiàn)這個(gè)錯(cuò)誤請(qǐng)?jiān)跈z查是不是有忘記更新的包。

 

 

 

建立一個(gè)文本,然后修改名字為setenv.sh,復(fù)制藍(lán)色內(nèi)容進(jìn)去

添加如下內(nèi)容:

QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-x86
   PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin:$PATH
   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:

 

 

建立一個(gè)文本,然后修改名字為setenv.sh,復(fù)制藍(lán)色內(nèi)容進(jìn)去

添加如下內(nèi)容:

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

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

使用:

我們?cè)谶\(yùn)行的時(shí)候分別運(yùn)行對(duì)應(yīng)的腳本即可,比如我們要用qt-x11:

cd /usr/local/Trolltech/Qt-4.5.0

source setenv.sh

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

 

 

 

 

 

結(jié)束語(yǔ):

     做到這一步相信大家都已經(jīng)經(jīng)歷了一到兩天甚至更多的時(shí)間,但是革命尚未成功同志仍需努力,大家接著打足精神繼續(xù)開(kāi)始干吧。

      同時(shí)感謝 昨夜代碼 奮斗_在路上 的幫助。

關(guān)閉窗口