qt環境搭建

來源:互聯網
上載者:User

 

首先從官網下載QT的嵌入式版,注意官網上的嵌入式版和linux版都是199M,其實他們在官網上的位置不一樣,

Qt libraries 4.7.0 for embedded Linux (199 MB)

http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz

Qt libraries 4.7.0 for Linux/X11(199 MB)

http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz

其實下載下來是一樣(看他們的下載路徑都是一樣的)的,。下載下來的檔案名稱為:
qt-everywhere-opensource-src-4.7.0.tar.gz

解壓

tar zxvf   qt-everywhere-opensource-src-4.7.0.tar.gz

把解壓後的檔案再複製兩份(一共三份),分別取名為pc; x86; arm;然後開始分別編譯:

1.編譯PC,  cd pc

./configure

make

這一步可能出錯:1

此完整出錯資訊是在./configure階段
Basic XLib functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/zhu/Qt/qt-x11-opensource-src-4.5.2/mkspecs/linux-g++

config.test
/x11/xlib 執行make命令,看出錯資訊
g++ -Wl,-O1 -o xlib xlib.o    -L/usr/X11R6/lib -lXext -lX11 -lm
/usr/bin/ld: cannot find -lXext
可以看到,g++在/usr/X11R6/lib下,找不到libXext.so

其原因就在於需要安裝libX11的開發包,根據自己的系統特點,安裝 libX11-dev   libXext-dev   libXtst-dev

問題解決!

可能出錯:2

cc1: error: unrecognized command line option "-fvisibility=hidden"

make: *** [sub-corelib-make_default-ordered] 錯誤 2

出錯原因是gcc版本太低,不支援-fvisibility=hidden選項,因為一開始的時候我們把gcc改成了3.4版本,現在要(利用備份)把它改回來。然後,重新編譯make.。

可能出錯3:

/usr/bin/ld: cannot find -lXrender

說明還少一個包:安裝    libxrender-dev 

sudo apt-get install cutecom

sudo apt-get install autoconf automake libtool

截至到現在,最後一次make沒有出錯,但有不錯warning,不管它

sudo make install

2. 編譯嵌入式x86版:

進入x86目錄,設定其以QVFB作為顯示輸出

# sudo ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0 -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb

# sudo make

# sudo make install

安裝過程比較長,沒有碰到過錯誤。

編譯安裝PC 版中的 qvfb:

進入pc/tools/qvfb/目錄

#make

#make install

3. 編譯arm版:

先安裝tslib

下載tslib-1.4.    點擊   tslib1.4

./autogen.sh  組建組態檔案

CC= $ARM_TOOL_PATH/arm-linux-gcc

X= $ARM_TOOL_PATH/arm-linux-g++

./configure --prefix=/usr/local/tslib-1.4 --host=arm-linux ac_cv_func_malloc_0_nonnull=yes  

make

make install

再安裝arm

cd arm

./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0-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-1.4/include -L/usr/local/tslib-1.4/lib

make

sudo make install

等待安裝完成!

=============================================================

測試安裝是否正確完成

安裝完成後,在 /usr/local/Trolltech 目錄中有三個檔案夾:Qt-4.7.0、QtEmbedded-4.7.0、QtEmbedded-4.7.0-arm。

1   測試嵌入式 x86 :
$ source ~/.setenv-qt-x86.sh
$ qvfb -width 800 -height 600 &
$ /usr/local/Trolltech/QtEmbedded-4.7.0/demos/books/books -qws

或者:

cd   /usr/local/Trolltech/QtEmbedded-4.7.0/demos/books

qvfb -width 640 -height 480 &

./books -qws

執行完qvfb;彈出一個類似終端的視窗,視窗背景為黑色,應該相當與模擬器的螢幕

執行完book;視窗背景不再是黑色,螢幕中彈出一個類似於圖書管理系統的介面,這就是我們想要看到的!

這一步可能出錯,就是找不到qvfb,提示你安裝qt4---*****;和qt3---***;直接apt-get 安裝第二個即可。sudo apt-get install qt3-dev-tools-embedded             
修複

 

4、編寫環境變數設定檔案(方便不同環境切換):

~/.setenv.sh(對應於PC版Qt):
PATH=/usr/local/Trolltech/Qt-4.7.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.7.0/lib:$LD_LIBRARY_PATH

~/.setenv.sh:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.7.0
PATH=/usr/local/Trolltech/QtEmbedded-4.7.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.7.0/lib:$LD_LIBRARY_PATH

~/.setenv.sh:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.7.0-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib:$LD_LIBRARY_PATH

後面的步驟:

5、移植
將 PC 機上  /usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib 中的庫複製到2440的 /usr/local/Trolltech/QtEmbedded-4.7.0-arm/lib(對應目錄複寫)。

將 PC 機上  /usr/local/tslib 中的庫複製到2440的 /usr/local 。

如果運行時還缺少其他的庫,複製方法相同。

為支援觸控螢幕,開機自動化佈建環境變數,在2440的 /etc/profile中追加:

export LD_LIBRARY_PATH=/usr/local/lib:$QTDIR/lib:$LD_LIBRARY_PATH                                                 

export TSLIB_ROOT=/usr/local/lib    

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_FBDEVICE=/dev/fb0 
export TSLIB_PLUGINDIR=/usr/local/lib/ts

export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/usr/local/etc/ts.conf

export POINTERCAL_FILE=/etc/pointercal

export TSLIB_CALIBFILE=/etc/pointercal

export QWS_MOUSE_PROTO=Tslib:/dev/input/event0

註:可用$ cat /dev/input/event0 測試觸控螢幕

取消/usr/local/etc/ts.conf中的第一個注釋:
# module_raw input (去掉#,並且該行頂格)

運行 /usr/local/bin/ts_calibrate 校正觸控螢幕。

6、程式編譯:
以下編譯方式,是把設定檔放到使用者目錄下,取了3個不同的名字,也可以把它們分別放到三個安裝目錄下,編譯的時候進到目錄裡邊運行。

使用:

我們在啟動並執行時候分別運行對應的指令碼即可,比如我們要用qt-x11:

cd /usr/local/Trolltech/Qt-4.7.0

source setenv.sh

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


PC版:
$ make distclean
$ source ~/.setenv-qt-x11.sh
$ qmake
$ make

arm 版:
$ make distclean
$ source ~/.setenv-qt-arm.sh
$ qmake
$ make

===============================================================

應該說到這一步,就基本算是完了,接下來可以再pc機上開發我們的應用程式了。如果之後碰到什麼問題,我會不斷地往此處添加。

推薦幾篇,我配環境時,覺得不錯的文章:

http://blog.csdn.net/PenglueR/archive/2009/12/10/4981753.aspx

http://www.xici.net/#u13572321/d118122274.htm

http://hi.baidu.com/jesserei/blog/item/861c201e18b1cd04314e1500.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.