可以通过输入echo $PATH命令检查环境变量是否设置正确,如下图:

可以,编译C文件进行测试,

使用gedit在任意目录下编辑hello.c文件如图所示,保存后进入终端。

以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交叉编译过程

zynq linux opencv效率,2 - 基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结相关推荐

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

    最近刚刚接触XILINX的ZYNQ板,刚接触没有十天.XILINX定位它为SOC,我也很认同,起码比TI定位MPU为SOC强很多.据说今年TI的最新产品也加入了ZYNQ板. 之前的MIPS处理器设计与 ...

  2. Mastering Embedded Linux Programming 学习 (一)嵌入式交叉编译工具链的构建,基于crosstool-NG

    Mastering Embedded Linux Programming 学习 (一) 一.ubuntu 软件包下载 sudo apt install autoconf automake bison ...

  3. 基于CMake的交叉编译工具链配置问题总结

    在近期的工作中,因项目自动化测试需要,大量单元测试构建需要通过脚本来完成.然而目前的项目中编译器是基于GCC较老版本修改而来,因此并不能很好地支持目前的开源测试框架googletest.而且基于性能的 ...

  4. arm hisiv100 linux,hisiv100交叉编译工具链安装

    hisi交叉编译工具链安装 一.         摘要: 交叉编译简单的说,就是A机器上编译生成,运行在B机器上.那么在A机器上的编译工具安装,就是本文所要描述的内容. 工欲善其事必先利其器,所以交叉 ...

  5. 【linux系统如何安装arm交叉编译工具链】

    文章目录 前言 一.arm交叉编译器介绍 命名规则 具体编译器 二.Arm GNU Toolchain安装 总结 前言 本文简要介绍arm交叉编译器及工具链的安装方法 一.arm交叉编译器介绍 命名规 ...

  6. hisi linux nptl.tar,hisiv100交叉编译工具链安装

    hisi交叉编译工具链安装 一.         摘要: 交叉编译简单的说,就是A机器上编译生成,运行在B机器上.那么在A机器上的编译工具安装,就是本文所要描述的内容. 工欲善其事必先利其器,所以交叉 ...

  7. arm-linux交叉编译工具链的制作(基于S3C2440)【转】

    本文转载自:http://eric-gao.iteye.com/blog/2160622 制作arm-linux交叉编译工具链一般通过crosstool工具或者crosstool-NG,前者使用方便, ...

  8. linux centos7 使用 crosstool-ng 构建 交叉编译 工具链 即构建各cpu架构平台的gcc编译器

    简介 crosstool-ng,全称是crosstool Next Generation,即下一代crosstool.crosstool是个交叉编译器的制作工具,但是做的不够好,于是有人(Yann E ...

  9. Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)

    文章目录 交叉编译 1.编译 2.本地编译 3.交叉编译 交叉编译工具链 交叉编译 在嵌入式系统开发中,经常会听到一个词:交叉编译.到底什么是"交叉编译"呢?为什么要使用" ...

最新文章

  1. 2018usnews计算机专业排名,2018年研究生计算机专业前50排名(美USNews版)
  2. hibernate中validate的使用(转)
  3. mysql主从脚本_shell脚本部署mysql主从
  4. Java里的线程控制
  5. quit推不出mysql_cmd下使用mysql插入中文出现无法退出语句的情况!终极解决办法! 安装mysql详细教程。...
  6. Mysql的timestamp与datetime
  7. matlab lu分解 l不是下三角,在MATLAB中执行LU分解而不进行旋转
  8. Dubbo(六)之属性配置
  9. FreeSql (十九)多表查询
  10. Windows 10 之重新安装应用
  11. BAT 面试中,遇到知识盲点如何巧妙圆场?
  12. 为什么不算法?常用算法概要大纲!
  13. IS技术:稳定压倒一切
  14. IAR软件安装图文教程
  15. 充值抖币显示苹果服务器异常,抖音充值抖币怎么充值不了
  16. 定位模组 ppm CEP 等参数 说明
  17. html 获取ie浏览器,用C#从,IE浏览器中获取HTML文档
  18. python实现KNN算法并可视化展示
  19. STM32驱动开发(二)--USB Device RNDIS虚拟网卡(USB2.0 基础概念讲解)
  20. PDF文件如何在线翻译成中文

热门文章

  1. 1644E. Expand the Path
  2. 626B. Cards
  3. threejs坐标转换
  4. java keytool nginx_java 自签名证书转 nginx 所需证书
  5. mysql 操作xm_mysql基本命令使用
  6. OpenDrive记录
  7. Linux编程里getopt_long_only函数用法详解
  8. 串口通讯编程一日通2(Overlapped IO模型)
  9. matlab求零空间,matlab求矩阵的零空间的一组整数基,该怎样操作?
  10. java删除换行符号_如何从Java中删除文件中的换行符?