OpenCV的安裝相對容易,編譯前需要安裝cmake以及cmake-gui配置工具。其實該配置過程與windows下很相似,只是需要修改一些路徑以及選項,并制定編譯器。
sudo apt-get install cmake cmake-gui
解壓OpenCV源代碼
tar -xzvf opencv-2.4.3.tar.bz2
進入源代碼,建立build文件夾(此步驟一定需要建立一個文件夾)
cd OpenCV-2.4.3
mkdir buid
cd build
gedit toolchain.cmake
利用新建toolchain.cmake文件,并添加如下內容:
set( CMAKE_SYSTEM_NAME Linux )
set( CMAKE_SYSTEM_PROCESSOR arm )
set( CMAKE_C_COMPILER arm-xilinx-linux-gnueabi-gcc )
set( CMAKE_CXX_COMPILER arm-xilinx-linux-gnueabi-g++ )
set( CMAKE_FIND_ROOT_PATH "/opt/opencv/opencv-lib" ) ##注意此路徑與$ZYNQ_CV_BUILD路徑一致且為絕對路徑##
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
后四行作為交叉編譯時的依賴庫的查找路徑。
然后進行cmake配置。
cmake -D TOOLCHAIN_FILE=tookchain.cmake ../
啟動cmake-gui圖形化管理工具(也可以用ccmake)
cmake-gui
設置好源路徑($ZYNQ_CV_BUILD,/opt/opencv/opencv-lib)以及編譯路徑(OpenCV-2.4.3\build),將不支持的東西全部去掉,只在with tiff,withjpeg,with ffmpeg,with png。單擊config,出現一系列配置信息。
單擊generate生成makefile文件。
make
make install
OpenCV-2.4.3的交叉編譯全部結束,明天繼續鏡像制作以及Qt的交叉編譯。
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庫及鏡像制作
此部分內容可參考官方wiki+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就是我們所需的運行庫了。
評論
查看更多