嵌入式Linux系統的QT4.5開發環境搭建

  應導師的要求,最近需要做一個嵌入式linux的網絡通信應用,萬事開頭難,搭建環境就花了我好幾天。總結下經驗,避免走彎路。

  首先需要下載三個程序包:

1.qt-x11-opensource-src-4.5.0   x11主要是用來安裝qvfb等工具的

2.qt--embedded-linux-opensource-src-4.5.0  嵌入式的qt,需要分別編譯出X86和arm兩個版本

3.qt-creator 開發工具,很好用

在安裝這三個軟件前,交叉編譯的gcc得先安裝好,本人安裝的是arm-linux-gcc4.3.3這裏就不細說了。


qt-x11安裝:

1.解壓:tar -xvzf qt-x11-opensource-src-4.5.0.tar.gz.

2../configure -prefix 安裝路徑

3.make

4.sudo make install

安裝完成後需要單獨編譯qvfb!!!!

qvfb:是嵌入式開發必不可少的工具,qvfb可以讓我們在PC上仿真開發板的運行結果。

1.進入qt-x11的源碼裏 /tools/qvfb/文件夾

2.make

3.將生成的qvfb可執行文件複製到之後編譯的x86版本的嵌入式QT 的bin文件夾下 

qt-embedded安裝:

a.編譯X86的qt

1.解壓

2. ./configure -prefix /opt/EmbedSky/qt-4.5/__install/x86/ -release -shared -fast -qt-sql-sqlite -plugin-sql-sqlite -qvfb -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
 -nomake demos -nomake examples

3.make

4.sudo make install

5.設置環境變量!

$sudo gedit /etc/profile   打開profile文件

在最後一行加入:
export QTDIR=/opt/EmbedSky/qt-4.5/__install/x86 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
export PATH=$PATH:$QTDIR/bin

$source /etc/profile 使立即文件生效 或者重新啓動系統也可以


b.編譯arm的qt

1.make confclean

2.configure -prefix /opt/EmbedSky/qt-4.5/__install/arm/ -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng -qt-libjpeg -make libs -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -embedded arm -little-endian -qt-freetype -depths 16 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-kbd-qvfb -no-glib -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -I/tslib-1.4/inclued -L/tslib-1.4/lib

3.make

4.sudo make install

安裝完畢,helloworld步驟如下:

1.打開qtcreator,在tools中添加qt版本如圖:

要想編譯能在本地運行的qt程序就選擇x86 的qmake

2.新建一個helloworld工程

3.在project中設置工程的build configuration,如圖:

4.bulid工程

5.如果直接運行工程的話會提示錯誤:

QWSSocket::connectToLocalFile could not connect:: No such file or directory
No Qt for Embedded Linux server appears to be running.
If you want to run this program as a server,
add the "-qws" command-line option.

解決方法是:在終端中

 $qvfb &(&表示後臺運行)

$cd 工程目錄

$./helloworld -qws

這裏qws使得程序以窗口服務器的方式啓動。窗口服務器對幀緩衝設備進行獨佔式管理,其他qt程序通過與窗口服務器進行通信的方式間接地使用這些設備。

因此,第一個qt程序必須以qws方式啓動,之後的就不用了也不能了,因爲已經被獨佔了。


一些問題:

1.終端輸入qvfb時出現:Cannot open keyboard pipe /tmp/.qtvfb_keyboard-0  ,只要到該文件夾下找到該文件並更改該文件的權限就行:chmod a+rwx XXX


2.編譯x11的時候在./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++

這個問題的解決方法就是安裝缺少的三個軟件包:libX11-dev libXext-dev libXtst-dev

Ubuntu下使用如下命令:sudo apt-get install libX11-dev libXext-dev libXtst-dev

Fedora下使用如下命令:yum install libX11-devel libXext-devel libXtst-devel


3.Ubuntu終端中輸入gmake提示找不到該命令:

gmake其實和make是同一個命令,執行下面命令將gmake和make這兩個命令軟鏈接起來:

 cd /usr/bin
 sudo ln -s make gmake









  



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章