【原創】基於ZYNQ7000的交叉編譯工具鏈Qt+OpenCV+ffmpeg等庫支持總結(二)


承接上文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

源文件內容如圖所示:

將前三行替換為

include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/linux.conf)
include(../../common/qws.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

即可成功運行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM