ZYNQ搭建Qt+OpenCV开发环境

开发环境:ubuntu 14.04

                     zynq 7020开发板

1、安装交叉编译器

1、xilinx开发环境Linux版本的Vivado中的SDK自带交叉编译器,可以选择安装Linux版本的vivado。

2、如果Linux磁盘空间不够的话可以在网站下载xilinx官方的交叉编译器,下载地址:

https://pan.baidu.com/share/link?shareid=2118817891&uk=2047711911&fid=131808308022716

    将xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin文件拷贝到Linux中运行安装,安装程中可以手动修改交叉编译器的安装目录。

配置环境变量,修改/etc/profile文件如下:

 

然后终端输入以下命令使得环境变量生效:

source /etc/profile

在Linux中配置完成后便可以验证安装的交叉编译器是否可用。

注意事项:1、需要将dash改为bash,ubuntu默认的是dash,查看ubuntu的shell:

ls -l /bin/sh

              2、由于安装的交叉编译器是为32位机器设计的,如果ubuntu是64位的话需要下载32-bit库。终端root下输入:         

apt-get install ia32-libs ia32-libs-gtk

2、在Linux上安装Qt Creator

准备工作:Qt在Linux主机中的运行环境需要很多的库支持,所以需要先安装一些必要的工具和库。终端root输入:

apt-get install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev g++

1.     可以在Linux主机的应用商店直接下载Qt Creator。

2.     网站上下载Linux版本的Qt安装包,拷贝到Linux中运行即可安装。

如果Qt程序在Linux主机运行时报缺少库的错误,可以通过以下命令进行查找:

apt-get install apt-file

apt-file update

apt-file search xxx

 

    然后安装对应的包即可。

3、编译ZYNQ版本的Qt库

1、解压qt源码

tar -zxvf qt-everywhere-opensource-src-5.6.2

2、修改qmake.conf内容,该文件由xilinx官方有提供。

#

# qmake configuration for building with arm-xilinx-linux-gnueabi-g++

#

 

MAKEFILE_GENERATOR      = UNIX

CONFIG                 += incremental

QMAKE_INCREMENTAL_STYLE = sublib

 

QT_QPA_DEFAULT_PLATFORM = linuxfb

 

include(../common/linux.conf)

include(../common/gcc-base-unix.conf)

include(../common/g++-unix.conf)

 

# modifications to g++.conf

QMAKE_CC                = arm-xilinx-linux-gnueabi-gcc

QMAKE_CXX               = arm-xilinx-linux-gnueabi-g++

QMAKE_LINK              = arm-xilinx-linux-gnueabi-g++

QMAKE_LINK_SHLIB        = arm-xilinx-linux-gnueabi-g++

 

# modifications to linux.conf

QMAKE_AR                = arm-xilinx-linux-gnueabi-ar cqs

QMAKE_OBJCOPY           = arm-xilinx-linux-gnueabi-objcopy

QMAKE_NM                = arm-xilinx-linux-gnueabi-nm -P

QMAKE_STRIP             = arm-xilinx-linux-gnueabi-strip

load(qt_config)

3、进入qt源码目录,并创建文件夹如下:

cd qt-everywhere-opensource-src-5.6.2

mkdir -p qtbase/mkspecs/arm-xilinx-linux-gnueabi-g++

4、将qmake.conf拷贝到刚才创建的目录下,交叉编译时会用到。

5、然后./configure --help查看配置参数,配置参数如下: 

./configure -xplatform arm-xilinx-linux-gnueabi-g++ \

    -opensource \

    -confirm-license \

    -skip qtquickcontrols \

    -skip qtwebchannel \

    -skip qtactiveqt \

    -skip qtandroidextras \

    -skip qtdeclarative \

    -skip qtimageformats \

    -skip qtmacextras \

    -skip qtserialport \

    -skip qtx11extras \

    -skip qtxmlpatterns \

    -skip qtconnectivity \

    -skip qtdoc \

    -skip qtenginio \

    -skip qtgraphicaleffects \

    -skip qtlocation \

    -skip qtmultimedia \

    -skip qtsensors \

    -skip qttools \

    -skip qttranslations \

    -skip qtwayland \

    -skip qtwebchannel \

    -skip qtwebengine \

    -skip qtwebsockets \

    -skip qtwinextras \

    -verbose \

    -no-gif \

    -no-libjpeg \

    -no-mtdev \

    -no-sql-db2 \

    -no-sql-ibase \

    -no-sql-mysql \

    -no-xcb \

    -qt-freetype \

    -no-fontconfig \

    -no-harfbuzz \

    -no-xinput2 \

    -no-xcb-xlib \

    -no-pulseaudio \

    -no-alsa \

    -no-gtkstyle \

    -no-cups \

    -no-iconv \

    -no-icu \

    -no-eglfs \

    -no-openssl \

    -no-dbus \

       -lrt \

    -prefix = (安装目录)

6、然后会在当前目录下生成Makefile,运行命令编译并安装:

make && make install

      这时候在安装目录下会生成编译好的zynq版本的Qt库文件。

    7、将上述步骤打包在一起并写成shell编译脚本,在终端./build.sh。

4、编译Linux Host版本的OpenCV库

1、编译ffmpeg源码。进入ffmpeg目录

cd xxx

make clean

./configure --enable-shared --disable-static --disable-yasm --prefix=安装目录

make

make install

2、编译opencv源码。

mkdir build

cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_opencv_nonfree=OFF -D CMAKE_INSTALL_PREFIX=安装目录 opencv-2.4.5源码目录

ccmake .

make

make install

3、配置opencv运行环境

export LD_LIBRARY_PATH= /lib:${LD_LIBRARY_PATH}

export C_INCLUDE_PATH= /include:${C_INCLUDE_PATH}

export CPLUS_INCLUDE_PATH= /include:${CPLUS_INCLUDE_PATH}

export PKG_CONFIG_PATH= /lib/pkgconfig:${PKG_CONFIG_PATH}

配置完成后边可以测试opencv程序是否可以在ubuntu上运行了。

注意事项:gtk2.0-dev需要在安装opencv之前安装才可以使用。终端输入:

apt-get install gtk2.0-dev

5、编译ZYNQ版本的OpenCV库

新建安装目录:mkdir build_opencv_zynq

1、编译jpeg-8d

cd jpeg-8d

./configure --prefix=$ZYNQ_CV_BUILD --host=arm-xilinx-linux-gnueabi --enable-shared

make

make install

2、编译v4l-utils-1.12.5

cd v4l-utils-1.12.5

make clean

./bootstrap.sh

./configure --prefix=build_opencv_zynq --host=arm-xilinx-linux-gnueabi --without-jpeg --with-udevdir= build_opencv_zynq/lib/udev

make

make install

3、编译zlib-1.2.7

cd zlib-1.2.7

export CC=arm-xilinx-linux-gnueabi-gcc

./configure --prefix= build_opencv_zynq --shared

make

make install

4、编译libpng-1.5.14

cd $Cur_Dir/libpng-1.5.14

./configure --prefix=build_opencv_zynq --host=arm-xilinx-linux-gnueabi --with-pkgconfigdir=build_opencv_zynq/lib/pkgconfig LDFLAGS=-Lbuild_opencv_zynq/lib CFLAGS=-Ibuild_opencv_zynq/include

make

make install

5、编译x264-snapshot-20120528-2245-stable

cd build_opencv_zynq/x264-snapshot-20120528-2245-stable

./configure --host=arm-linux --cross-prefix=arm-xilinx-linux-gnueabi- --enable-shared --prefix= build_opencv_zynq

make

make install

6、编译xvidcore

cd /xvidcore/build/generic

./configure --prefix=build_opencv_zynq --host=arm-xilinx-linux-gnueabi --disable-assembly

make

make install

7、编译tiff-4.0.3

cd /tiff-4.0.3

./configure --prefix= build_opencv_zynq --host=arm-xilinx-linux-gnueabi --enable-shared LDFLAGS=-L build_opencv_zynq/lib CFLAGS=-Ibuild_opencv_zynq/include

make

make install

8、编译ffmpeg-1.2

cd /ffmpeg-1.2

./configure --prefix= build_opencv_zynq --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=armv7l --disable-stripping --target-os=linux --enable-libx264 --enable-libxvid --cross-prefix=arm-xilinx-linux-gnueabi- --enable-swscale --extra-cflags=-Ibuild_opencv_zynq/include --extra-ldflags=-Lbuild_opencv_zynq /lib --disable-asm

make

make install

9、编译opencv-2.4.5

cd /opencv-2.4.5

mkdir build

cd build

echo "set( CMAKE_SYSTEM_NAME Linux )" >> toolchain.make

echo "set( CMAKE_SYSTEM_PROCESSOR arm )" >> toolchain.make

echo "set( CMAKE_C_COMPILER arm-xilinx-linux-gnueabi-gcc )" >> toolchain.make

echo "set( CMAKE_CXX_COMPILER arm-xilinx-linux-gnueabi-g++ )">> toolchain.make

echo "set( CMAKE_INSTALL_PREFIX build_opencv_zynq )" >> toolchain.make

echo "set( CMAKE_FIND_ROOT_PATH build_opencv_zynq )" >> toolchain.make

echo "set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )" >> toolchain.make

echo "set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )" >> toolchain.make

echo "set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )" >> toolchain.make

cmake -D CMAKE_TOOLCHAIN_FILE=toolchain.make -D BUILD_opencv_nonfree=OFF /opencv-2.4.5

ccmake .

以上命令用来生成Makefile。

将之前编译好的库文件拷贝到opencv-2.4.5/build/lib目录下。

cp -r -f build_opencv_zynq /lib/* /opencv-2.4.5/build/lib

make && make install

6、移植编译好的zynq版本的Qt库和OpenCV库到zynq开发板,并配置环境变量。这里用一个shell脚本来配置。

#!/bin/sh

Cur_Dir=$(pwd)

echo $Cur_Dir

export QTDIR=$Cur_Dir/qt

export CVDIR=$Cur_Dir/opencv_lib_zynq

export QT_QPA_FONTDIR=$QTDIR/lib/fonts

export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/

export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$CVDIR/lib:$LD_LIBRARY_PATH

export PATH=$QTDIR/bin:$PATH

export PATH=$CVDIR/bin:$PATH

export QT_QPA_PLATFORM=linuxfb

 

你可能感兴趣的:(ZYNQ搭建Qt+OpenCV开发环境)