承接上文http://www.cnblogs.com/bombe1013/p/3294301.html,我們接下來說說Qt的移植與安裝。
很喜歡Qt這個庫以及Qt creater這個IDE,其實個人覺得還蠻好用,因為現在基本都是在用瞪眼兒法找錯誤。
尤其喜歡Qt里面槽和信號的機制,感覺這個機制特別魔幻,特別方便,上個學年一整年的課程設計都是用Qt做的。
言歸正傳,先說一下,如何在Linux下安裝Qt。
(一)Linux下Qt以及Qt creater的安裝與使用
解壓qt-everywhere-opensource-src-4.8.5.tar.gz到任意文件夾內
tar -xzvf qt-everywhere-opensource-src-4.8.5.tar.gz
cd qt-everywhere-opensource-src-4.8.5.tar
配置並指定編譯安裝目錄/opt/qt-4.8.4
./configure -prefix /opt/qt-4.8.4
配置過程中出現如下提示,選擇o回車,繼續出現提示,

輸入yes回車,接下來生成Makefile文件。

然后,執行make以及make install。編譯過程我個人花了將近四個小時,
此時間很長。完成后添加環境變量。
gedit /etc/bash.bashrc
添加如下內容
export PATH=/opt/qt-4.8.4/bin:$PATH
export QTDIR=/opt/qt-4.8.4
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
保存好后,輸入source /etc/bash.bashrc使添加的環境變量生效。
接下來安裝Qt-creater。進入文件夾,輸入如下命令:
chmod 777 qt-creator-linux-x86-opensource-2.7.0.bin
sudo ./qt-creator-linux-x86-opensource-2.6.1.bin
接下來進入安裝界面,設置安裝目錄以及Qt庫位置,安裝完成后即可使用。

(二)交叉編譯Qt庫及鏡像制作
此部分內容可參考官方wikihttp://www.wiki.xilinx.com/Zynq+Qt+and+Qwt+Base+Libraries-Build+Instructions
先建立幾個環境變量,輸入如下命令:
export ZYNQ_QT_BUILD=/opt/qt-arm/build
export ZYNQ_QT_INSTALL=/opt/qt-arm/install
export PATH=$ZYNQ_QT_INSTALL/bin:$PATH
在opt內建立相應目錄
cd /opt
mkdir qt-arm
cd qt-arm
mkdir build install
進入qt-everywhere-opensource-src-4.8.5.tar.gz文件夾內,解壓文件到ZYNQ_QT_BUILD目錄內
tar -xzvf qt-everywhere-opensource-src-4.8.5.tar.gz -C $ZYNQ_QT_BUILD
解壓qt_build_src.tar文件,里面有我們需要的配置文件qmake.conf,該文件由Xilinx官方提供,命令如下:
tar xvf qt_build_src.tar
cp ./qmake.conf $ZYNQ_QT_BUILD/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-gnueabi-g++/
因為該配置文件基於Qt4.7,為編譯Qt4.8,需要修改文件內容。
gedit $ZYNQ_QT_BUILD/qt-everywhere-opensource-src-4.8.5/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
源文件內容如圖所示:

將前三行替換為
修改后文件內容如圖所示:

然后對Qt進行配置
./configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -little-endian -opensource -host-little-endian
-confirm-license -nomake demos -nomake examples -prefix $ZYNQ_QT_INSTALL
配置完成后make以及make install。
之后將Xilinx交叉編譯庫中的內容復制到Qt庫中,輸入命令:
cp -P /root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/usr/lib/libstdc++.so* $ZYNQ_QT_INSTALL/lib
安裝好Qt庫后,需要為Zedboard制作鏡像。
cd $ZYNQ_QT_BUILD
dd if=/dev/zero of=qt_lib.img bs=1M count=90 // qt-4.8.5需要90M大小作為鏡像大小,根據需要可以改變count
mkfs.ext2 -F qt_lib.img
chmod go+w qt_lib.img
mount qt_lib.img -o loop /mnt
cp -rf $ZYNQ_QT_INSTALL/* /mnt
chmod go-w qt_lib.img
umount /mnt
這個qt_lib.img就是我們所需的運行庫了。
接下來的任務就是如何掛載這個鏡像。利用Qt編寫一個project。導入如下環境變量:
export ZYNQ_QT_INSTALL=/opt/Qt-arm/install
export PATH=$ZYNQ_QT_INSTALL/bin:$PATH
進入project內輸入如下命令
qmake -project
qmake
此時會生成Makefile文件,再輸入make編譯生成Arm Version的可執行文件。可以使用file命令查看。
將該工程以及qt_lib.img拷貝到SD卡的FAT格式分區下。
把SD卡插回ZYNQ開發板,通電。進入桌面后,啟動終端。
在對應的ZYNQ_QT_INSTALL目錄下建立相應的目錄,我自己而言
cd /opt/
mkdir Qt-arm
cd Qt-arm
mkdir install
將qt_lib.img掛載。
mount /dev/mmcblk0p1 /mnt(可以使用ls /dev查看SD卡分區)
mount /mnt/qt_lib.img /opt/Qt-arm/install
運行SD卡中的文件
/mnt/PROJECTPATH/app -qws
即可成功運行
