QT 4.5.2 嵌入式開發平臺的搭建
系統環境:ubuntu 9.04
編譯環境:crosstool 0.43 安裝后生成4.1版本的arm-linux-GCC
在配置之前,sudo apt-get install build-essential 來安裝基本的開發環境
Qtx11(源碼安裝) 安裝準備
建議直接下二進制程序安裝。
1.安裝依賴的庫,你也可以不轉,再安裝出錯的時候補上。
sudo apt-get install libxrender-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev libxt-dev libglib2.0-dev -libxtst-dev
這個是我剛裝完系統后根據QTx11編譯錯誤一個一個跟蹤出來的,并不能保證是所有的安裝依賴。
2.然后進入源代碼頂層目錄輸入
./configure -qt-sql-sqlite -plugin-sql-sqlite -nomake demos -nomake examples -silent
其中的編譯參數可以自己根據./configure -help里面的提示篩選。
Qt-embedded 安裝準備
1.如果你的交叉工具組都是以arm-linux-開頭的則直接進行下面的步驟就行了,否則要有兩個方法,一就是給你的工具組做軟連接,然他們的前綴為 arm-linux-。推薦用這辦法。二是打開Qt-embedded的源碼目錄,修改 mkspecs/qws/linux-arm-g++/qmake.conf,將里面的arm-linux-改成你交叉編譯工具的前綴。
2.
打開qt-embedded-linux-opensourcesrc4.5.2/src/gui/embedded/qmouselinuxtp_qws.h
在里添加如下兩個宏定義,其原因不知道,還望高人指教,這是在網上搜集資料是看到的,我試過不添加,則下面提供的配置選項生成的Qt-embedded庫編譯出來的程序不能使用觸摸屏。如果有人使用tslib觸摸屏驅動成功移植的,也請分享一下。
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
3.進入源代碼頂層目錄輸入:
./configure -embedded arm -little-endian -qt-sql-sqlite -plugin-sql-sqlite -no-scripttools -no-nis -no-largefile -no-libmng -no-accessibility -depths 16 -nomake docs -nomake demos -nomake examples -qt-zlib -feature-THREAD -feature-CONCURRENT -feature-SOUND -feature-EFFECTS -no-feature-CURSOR -silent
同理,上面的配置參數可以根據嵌入式應用的需要,進行裁剪,把不需要的東西都去掉,這對嵌入式應用來說是非常重要的,不僅可以節省空間也提高效率。
Qt Creator 安裝
Qt Creator 是一款輕量級的IDE,我用它的目的就是為了方便QT程序的交叉編譯。
1.如果Qtx11是從源碼安裝的,則不帶Qt Creator,這時可以去官方網站下載二進制程序安裝。安裝好后,打開Qt Creator->Tools->options 然后在左邊的導航欄展開Qt4,選Qt Versions。點擊右上的加號圖標,在version name里可以隨便填,主要用來區分X86 和 arm 等Qt庫的版本,在路徑選到之前安裝QTx11 庫的路徑,默認安裝是在 /usr/local/Trolltech/QtEmbedded-4.5.2,然后點擊rebuild,如果看到打對勾,則一切正常。同理,可以在添加 上QtE-arm的庫。
2.現在可以建立一個項目來玩玩,也可找到Qt-embedded的源碼包,里面有一個觸摸屏校正程序,在example\qws \mousecalibration,這個程序是嵌入式設備必須的,不然觸摸屏是不能使用的。用Qt Creator打開其中的mousecalibration.pro文件。在Qt Creator左邊,點擊Projects。在Build Settings 勾上Release,Qt Version 選 之前你為QTE-arm庫起的名字,然后build就生成適合開發板運行的QT程序了。
配置環境變量,方便用別的IDE和命令行調用qmake moc 等程序
用編輯器打開~/.profile文件添加如下,保存注銷就生效。
# set PATH so it includes Qt4.5.2 X11 bin if it exists
if [ -d "/usr/local/Trolltech/Qt-4.5.2/bin" ] ; then
PATH="/usr/local/Trolltech/Qt-4.5.2/bin:$PATH"
fi
Qt文件系統的配置
準備
1.在根文件系統里建立/opt/qt/bin lib plugins 三個文件夾
2.把/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib(即Qt-embedde庫的安裝目錄)中的 libQtCore.so.4.5.2 libQtGui.so.4.5.2 libQtNetwork.so.4.5.2 放到開發板根文件系統的/opt/qt/lib里,并且做三個軟鏈接分別為libQtCore.so.4 libQtGui.so.4 libQtNetwork.so.4
3.接著再把/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib/fonts/ 中帶Vera和fixed的文件拷貝到根文件系統的/opt/qt/lib/fonts/
4.再要把/usr/local/Trolltech/QtEmbedded-4.5.2-arm/plugins/imageformats 里的文件拷貝到根文件系統的/opt/qt/plugins/imageformats 里。
5.到現在基本的Qt庫就已經移植好了。在移植應用程序的時候,可以用如下命令查看需要那些共享庫:
arm-linux-readelf -a 程序名 | grep "Share",其中arm-linux-可該成你交叉編譯工具的前綴
配置根文件系統
一般首先要做的就是將一個觸摸屏校正程序放到文件系統的bin里(其實放那里都一樣)。然后寫一個腳本程序,讓系統開機時調用,我的腳本程序initqt如下(別忘了給它添加可執行權限):
#!/bin/sh
export HOME=/root
export QTDIR=/opt/qt
#用來選擇LinuxTP鼠標驅動
export set QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw"
export QWS_DISPLAY="LinuxFB:/dev/fb0"
#用來調整字體顯示的比例,里面的數值可以自己換一下看看效果
export QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
export QWS_SIZE="320x240"
export QT_PLUGIN_PATH=$QTDIR/plugins/
#字體目錄
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/plugins/imageformats:$LD_LIBRARY_PATH
#判斷是否已經校正過屏幕了
if [ -s "etc/pointercal" ] ; then
else
/bin/mousecalibration
fi
再配置一下/etc/profile文件,讓一下環境變量登錄就有效,以下是我的配置:
# Ash profile
# vim: syntax=sh
# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
export HOME=/root
export QTDIR=/opt/qt
export set QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw"
export QWS_DISPLAY="LinuxFB:/dev/fb0"
export QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
export QWS_SIZE="320x240"
export QT_PLUGIN_PATH=$QTDIR/plugins/
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/plugins/imageformats:$LD_LIBRARY_PATH
最后在根文件系統的/etc/init.d/rcS 中的適當位置,加上/bin/initqt &
系統環境:ubuntu 9.04
編譯環境:crosstool 0.43 安裝后生成4.1版本的arm-linux-GCC
在配置之前,sudo apt-get install build-essential 來安裝基本的開發環境
Qtx11(源碼安裝) 安裝準備
建議直接下二進制程序安裝。
1.安裝依賴的庫,你也可以不轉,再安裝出錯的時候補上。
sudo apt-get install libxrender-dev libxrandr-dev libxcursor-dev libxinerama-dev libxi-dev libxt-dev libglib2.0-dev -libxtst-dev
這個是我剛裝完系統后根據QTx11編譯錯誤一個一個跟蹤出來的,并不能保證是所有的安裝依賴。
2.然后進入源代碼頂層目錄輸入
./configure -qt-sql-sqlite -plugin-sql-sqlite -nomake demos -nomake examples -silent
其中的編譯參數可以自己根據./configure -help里面的提示篩選。
Qt-embedded 安裝準備
1.如果你的交叉工具組都是以arm-linux-開頭的則直接進行下面的步驟就行了,否則要有兩個方法,一就是給你的工具組做軟連接,然他們的前綴為 arm-linux-。推薦用這辦法。二是打開Qt-embedded的源碼目錄,修改 mkspecs/qws/linux-arm-g++/qmake.conf,將里面的arm-linux-改成你交叉編譯工具的前綴。
2.
打開qt-embedded-linux-opensourcesrc4.5.2/src/gui/embedded/qmouselinuxtp_qws.h
在里添加如下兩個宏定義,其原因不知道,還望高人指教,這是在網上搜集資料是看到的,我試過不添加,則下面提供的配置選項生成的Qt-embedded庫編譯出來的程序不能使用觸摸屏。如果有人使用tslib觸摸屏驅動成功移植的,也請分享一下。
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
3.進入源代碼頂層目錄輸入:
./configure -embedded arm -little-endian -qt-sql-sqlite -plugin-sql-sqlite -no-scripttools -no-nis -no-largefile -no-libmng -no-accessibility -depths 16 -nomake docs -nomake demos -nomake examples -qt-zlib -feature-THREAD -feature-CONCURRENT -feature-SOUND -feature-EFFECTS -no-feature-CURSOR -silent
同理,上面的配置參數可以根據嵌入式應用的需要,進行裁剪,把不需要的東西都去掉,這對嵌入式應用來說是非常重要的,不僅可以節省空間也提高效率。
Qt Creator 安裝
Qt Creator 是一款輕量級的IDE,我用它的目的就是為了方便QT程序的交叉編譯。
1.如果Qtx11是從源碼安裝的,則不帶Qt Creator,這時可以去官方網站下載二進制程序安裝。安裝好后,打開Qt Creator->Tools->options 然后在左邊的導航欄展開Qt4,選Qt Versions。點擊右上的加號圖標,在version name里可以隨便填,主要用來區分X86 和 arm 等Qt庫的版本,在路徑選到之前安裝QTx11 庫的路徑,默認安裝是在 /usr/local/Trolltech/QtEmbedded-4.5.2,然后點擊rebuild,如果看到打對勾,則一切正常。同理,可以在添加 上QtE-arm的庫。
2.現在可以建立一個項目來玩玩,也可找到Qt-embedded的源碼包,里面有一個觸摸屏校正程序,在example\qws \mousecalibration,這個程序是嵌入式設備必須的,不然觸摸屏是不能使用的。用Qt Creator打開其中的mousecalibration.pro文件。在Qt Creator左邊,點擊Projects。在Build Settings 勾上Release,Qt Version 選 之前你為QTE-arm庫起的名字,然后build就生成適合開發板運行的QT程序了。
配置環境變量,方便用別的IDE和命令行調用qmake moc 等程序
用編輯器打開~/.profile文件添加如下,保存注銷就生效。
# set PATH so it includes Qt4.5.2 X11 bin if it exists
if [ -d "/usr/local/Trolltech/Qt-4.5.2/bin" ] ; then
PATH="/usr/local/Trolltech/Qt-4.5.2/bin:$PATH"
fi
Qt文件系統的配置
準備
1.在根文件系統里建立/opt/qt/bin lib plugins 三個文件夾
2.把/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib(即Qt-embedde庫的安裝目錄)中的 libQtCore.so.4.5.2 libQtGui.so.4.5.2 libQtNetwork.so.4.5.2 放到開發板根文件系統的/opt/qt/lib里,并且做三個軟鏈接分別為libQtCore.so.4 libQtGui.so.4 libQtNetwork.so.4
3.接著再把/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib/fonts/ 中帶Vera和fixed的文件拷貝到根文件系統的/opt/qt/lib/fonts/
4.再要把/usr/local/Trolltech/QtEmbedded-4.5.2-arm/plugins/imageformats 里的文件拷貝到根文件系統的/opt/qt/plugins/imageformats 里。
5.到現在基本的Qt庫就已經移植好了。在移植應用程序的時候,可以用如下命令查看需要那些共享庫:
arm-linux-readelf -a 程序名 | grep "Share",其中arm-linux-可該成你交叉編譯工具的前綴
配置根文件系統
一般首先要做的就是將一個觸摸屏校正程序放到文件系統的bin里(其實放那里都一樣)。然后寫一個腳本程序,讓系統開機時調用,我的腳本程序initqt如下(別忘了給它添加可執行權限):
#!/bin/sh
export HOME=/root
export QTDIR=/opt/qt
#用來選擇LinuxTP鼠標驅動
export set QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw"
export QWS_DISPLAY="LinuxFB:/dev/fb0"
#用來調整字體顯示的比例,里面的數值可以自己換一下看看效果
export QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
export QWS_SIZE="320x240"
export QT_PLUGIN_PATH=$QTDIR/plugins/
#字體目錄
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/plugins/imageformats:$LD_LIBRARY_PATH
#判斷是否已經校正過屏幕了
if [ -s "etc/pointercal" ] ; then
else
/bin/mousecalibration
fi
再配置一下/etc/profile文件,讓一下環境變量登錄就有效,以下是我的配置:
# Ash profile
# vim: syntax=sh
# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
export HOME=/root
export QTDIR=/opt/qt
export set QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw"
export QWS_DISPLAY="LinuxFB:/dev/fb0"
export QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
export QWS_SIZE="320x240"
export QT_PLUGIN_PATH=$QTDIR/plugins/
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/plugins/imageformats:$LD_LIBRARY_PATH
最后在根文件系統的/etc/init.d/rcS 中的適當位置,加上/bin/initqt &
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
