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

即可成功运行

【原创】基于ZYNQ7000的交叉编译工具链Qt+OpenCV+ffmpeg等库支持总结(二)的更多相关文章

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

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

  2. 【转】ARM交叉编译工具链

    原文网址:http://www.veryarm.com/cross-tools 为什么要用交叉编译器? 交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台( ...

  3. ARM交叉编译工具链分类说明

    转载整理自:http://www.veryarm.com/cross-tools 从授权上,ARM交叉编译工具链分为免费授权版和付费授权版. 免费版目前有三大主流工具商提供,第一是GNU(提供源码,自 ...

  4. ARM交叉编译工具链

    交叉编译工具链是一个由编译器.连接器和解释器组成的综合开发环境,交叉编译工具链主要由binutils.gcc和glibc三个部分组成. 免费版目前有三大主流工具商提供,第一是GNU(提供源码,自行编译 ...

  5. 交叉编译工具链介绍《Building Embedded Linux Systems》

    1.前言 配置和编译一个合适的GNU工具链是相对复杂的并且需要很精细的操作,包括你需要对不同软件库之间的依赖关系.它们的各自的任务,不同软件库版本情况都有比较好的了解,编译工具链是一个乏味的工作. 2 ...

  6. archlinux安装交叉编译工具链

    1. 在/usr/local下新建文件夹:arm  [guo@archlinux local]$sudo mkdir arm 2. 将交叉编译工具拷贝到arm文件夹中  [guo@archlinux ...

  7. Linux下获取arm的交叉编译工具链

    转载请注明文章:Linux下获取arm的交叉编译工具链 出处:多客博图 这里介绍,Linux下获取arm的交叉编译工具链,比如arm-linux-gnueabihf-gcc.arm-linux-gne ...

  8. (一)arm交叉编译工具链准备

    1.背景 arm机器一般因为资源问题进行编译会影响开发速度,而且很多时候因为资源不够而无法完成编译工作.因此,需要在执行机上进行交叉编译,即使用x86或其他架构机器基于交叉编译工具编译出在arm上可以 ...

  9. CROSSTOOL-NG建立交叉编译工具链

    CROSSTOOL-NG建立交叉编译工具链 因为考试和学习的原因我已经一段时间没有玩我的JZ2440,现在终于考完试了,我再次找出了我的JZ2440.我之前学习的时候使用的是韦东山老师提供的开发工具, ...

随机推荐

  1. Get vertical scrollbar width and example

    $.scrollbarWidth = function () { var parent, child, width; if (width === undefined) { parent = $('&l ...

  2. vhost设定

    vhost设定   http.conf <Directory /> AllowOverride none #Require all denied </Directory>   ...

  3. 在windows服务器中,将MongoDB服务化。

    将mongodb在windows中服务化,就是将其注册成一个服务组件,并可以设置成,手动/自动 启动. 一般的我们都会在command窗口运行如下: d:\mongodb\bin>mongod ...

  4. c语言背后的运行机制

    目的:通过分析c语言转换成汇编代码后的执行过程对汇编语言和X86构架有一个初步认识 实验代码 #include <stdio.h> int g(int x) { ; } int f(int ...

  5. orcale同一条语句运行速度差异问题

    在oracle中执行一个查询语句,该语句首次执行时orcale会把其内容存入SGA(系统全局区)中,下次再执行同一条语句的时候就不再去解析该语句,而是直接从SGA区中取出该语句执行,但是前提是SQL没 ...

  6. StatusStrip状态栏控件

    1.ToolStripStatusLabel statusstrip1.Items[].Text="日期"+DateTime.Now.ToString(); Thread p = ...

  7. X86 复制本地 生成有问题、类型初始值设定项引发异常

    一. 选择项目,右击属性——生成——目标平台 选择x86就可以了. 二. 有的时候你发现你项目中的dll没有生成到本地bin,这时右击它属性,到它引用的地方复制引用dll放到部署环境中,你会发现一样报 ...

  8. 中文变英文字母(ios)

    [_EnglishName setString:addressPerson.name]; if (CFStringTransform((__bridge CFMutableStringRef)_Eng ...

  9. 【BZOJ 1066】[SCOI2007]蜥蜴

    Description 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外. 每行每列中相邻石柱的距离为1,蜥蜴的跳跃距离是d,即蜥蜴可以跳到平 ...

  10. android/IOS各平台分享链接/跳转链接配置说明(备用)

    Android: [Java] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 微信/朋友圈 //设置 ...