微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结

基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结

时间:02-10 来源:网络整理 点击:

,保存后进入终端。

以root身份进入到当前目录下,输入arm-xilinx-linux-gnueabi-gcc -o hello hello.c命令(该命令root身份有效)

生成hello可执行文件,输入file hello命令,hello文件信息如下,显示arm可执行文件。

此时证明arm-xilinx交叉编译工具安装正确无误,进入下一步。

在此之前建议,添加环境变量用于简单表示交叉编译库存放路径,每次启动终端都需要输入此命令

export ZYNQ_CV_BUILD=/opt/opencv/opencv-lib

使用echo $ZYNQ_CV_BUILD命令检验是否添加环境变量,再开始对依赖库的编译。

2.依赖库的交叉编译

对于依赖库的编译,都需要进行配置,当发生配置错误时可使用./configure --help命令查看帮助,以及阅读相应log文件查看编译出错原因。切记需要按照顺序编译,并且一定注意版本一致。

(1)zlib-1.2.7

由于zlib中没有--host选项,所以需要预先声明cc变量

unzip zlib127.zip

cd zlib-1.2.7

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

./configure --prefix=$ZYNQ_CV_BUILD --shared

make

make install

然后,可进入$ZYNQ_CV_BUILD/lib目录下检查是否已编译ARM环境的zlib库

cd $ZYNQ_CV_BUILD/lib

ls

file libz.so.1.2.7

如下图所示,则表明成功编译arm所需库文件,以下依赖库均可采用此种检查方式,故略去。

(2)jpeg-8d

tar -xzvf jpegsrc.v8d.tar.gz

cd jpeg-8d

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

make

make install


(3)libpng-1.5.14

libpng编译时需要zlib库的内容,所以需要LDFLAGS以及CFLAGS变量声明。

tar -xzvf libpng-1.5.14.tar.gz

cd libpng-1.5.14

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

--with-pkgconfigdir=$ZYNQ_CV_BUILD/lib/pkgconfig LDFLAGS=-L$ZYNQ_CV_BUILD/lib

CFLAGS=-I$ZYNQ_CV_INSTALL/include

make

make install

(4)x264-snapshot-20120528-2245-stable

tar -xjvf x264-snapshot-20120528-2245-stable.tar.bz2

cd x264-snapshot-20120528-2245-stable

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

make

make install

(5)xvidcore-1.3.2

注意此处一定要禁止汇编。

tar -xzvf xvidcore-1.3.2.tar.gz

cd xvidcore/build/generic // 注意该依赖库configure在build/generic/目录下

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

make

make install

(6)tiff-4.0.3

同理,需要添加zlib支持,因此需要声明LDFLAGS和CFLAGS变量。

tar -xzvf tiff-4.0.3.tar.gz

cd tiff-4.0.3

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

LDFLAGS=-L$ZYNQ_CV_BUILD/lib CFLAGS=-I$ZYNQ_CV_BUILD/include

make

make install

(7)ffmpeg-0.10.3

ffmpeg的配置选项较多,需要添加cflas和ldflags声明。

tar -xjvf ffmpeg-0.10.3.tar.bz2

cd fmpeg-0.10.3

./configure --prefix=$ZYNQ_CV_BUILD --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm

--disable-stripping --target-os=linux --enable-libx264 --enable-libxvid --cc=arm-xilinx-linux-gnueabi-gcc --enable-swscale

--extra-cflags=-I$ZYNQ_CV_BUILD/include --extra-ldflags=-L$ZYNQ_CV_BUILD/lib --disable-asm

make

make install

3. OpenCV2.4.3交叉编译过程

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文件。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top