歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Ubuntu 10.04下Qt4.7.4移植詳解

移植環境

gcc編譯器版本:gcc version4.3.2 (Sourcery G++ Lite 2008q3-72)

宿主機版本:Ubuntu 10.04 LTS

QtCreator版本:QtCreator2.6.1

交叉編譯依賴庫:tslib1.4

Qt版本:qt-everywhere-opensource-src-4.7.4

虛擬機版本:Vmware 7.1.4

qmake

移植Qt其實主要是為了得到三個版本的qmake,分別為qmake-arm、qmake-x86、qmake-x11

qmake-arm:用於交叉編譯arm架構的程序,編譯後的程序運行在開發板上。由於我們的開發板要使用觸摸屏,開發板程序需要觸摸屏庫的支持,所以必須先移植觸摸屏庫。

qmake-x86:用於編譯x86架構的程序,編譯這個qmake只是為了方便調試開發板上的程序,創建一個虛擬的開發板環境。

qmake-x11:用於編譯在宿主機上運行的程序。移植時需要把qvfb這個工具編譯出來提供給虛擬環境使用,配置時加上參數-qvfb即可。

移植前准備

1. 分別創建以下目錄:

/home/qt/qt-x86

/home/qt/qt-x11

/home/qt/qt-arm

/home/qt/qt-creator

/home/qt/tslib

2. 文件。將qt-everywhere-opensource-src-4.7.4解壓成三份,分別命名為qt-x86-build、qt-x11-build、qt-arm-build。

tslib 1.4觸摸屏庫的移植

1.解壓源碼

# tar -zxvf tslib-1.4.tar.gz

# cd tslib-1.4

2.執行autogen.sh腳本生成configure文件

# ./autogen.sh

3.生成Makefile文件

# echo"ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache

# ./configure --host=arm-linux --prefix=/home/qt/tslib--cache-file=arm-linux.cache

說明:

l --cache-file 定義一個臨時的緩沖文件,當重新進行配置時可利用此文件加快配置速度,默認情況下是不用這個文件的。

l 如果不添加echo"ac_cv_func_malloc_0 _nonnull=yes">arm-linux.cache會報錯:

ts_test.o: In function `main':

ts_test.c:(.text+0x1d8): undefinedreference to `rpl_malloc'

fbutils.o: In function`open_framebuffer':

fbutils.c:(.text+0xa20): undefinedreference to `rpl_malloc'

4.編譯安裝

#make

#make install

5.修改/tslib/etc/ts.conf文件

module_rawinput

modulepthres pmin=1

modulevariance delta=30

moduledejitter delta=100

modulelinear

修改完成後將整個安裝文件拷貝到開發板下的/usr目錄下

6.修改開發板系統/etc/profile中添加如下代碼:

exportTSLIB_ROOT=/usr/tslib_install

exportTSLIB_TSDEVICE=/dev/event0

exportTSLIB_CALIBFILE=/etc/pointercal

exportTSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

exportTSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

exportTSLIB_CONSOLEDEVICE=none

exportTSLIB_FBDEVICE=/dev/fb0

exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib

7.在開發板上測試觸摸屏校正程序

./home/tslib/bin/ts_calibrate

移植到ARM開發板qmake-arm

1.進入到/home/qt/qt-arm文件夾,配置編譯選項

#./configure --prefix=/home/qt/qt-arm-embedded arm -release -opensource -fast -no-accessibility -no-scripttools-no-mmx -no-multimedia -no-svg -no-webkit -no-3dnow -no-sse -no-sse2 -silent-qt-libpng -qt-libjpeg -no-libtiff -no-multimedia -make libs -nomake tools-nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus-no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc-no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib -I/home/qt/tslib/include-L/home/qt/tslib/lib

提示:

Do youaccept the terms of either license?

輸入yes

2.make

3.makeinstall

4.編譯完成之後修改/home/qt/qt-arm/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf文件

#modifications to g++.conf

QMAKE_CC = arm-none-linux-gnueabi-gcc-lts

QMAKE_CXX = arm-none-linux-gnueabi-g++-lts

QMAKE_LINK = arm-none-linux-gnueabi-g++ -lts

QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++ -lts

使編譯器加載觸摸屏的庫,否則編譯時會報錯!

5.將/home/qt/qt-arm/bin目錄下的qmake名稱更換為qmake-arm

6.添加環境變量

vi/etc/bash.bashrc

添加:

exportPATH=$PATH:/home/qt/qt-arm/bin

7.啟用新的環境變量

#source/etc/bash.bashrc

8.查看是否設置成功

#qmake-arm–v

如果成功打印如下信息:

QMakeversion 2.01a

Using Qtversion 4.7.4 in /home/qt/qt-arm/lib

Copyright © Linux教程網 All Rights Reserved