Zedboard-Ubuntu12.04下构建QT交叉环境之二

本文紧接着笔者的上篇博文Zedboard-Ubuntu12.04下构建QT交叉环境之一http://www.eefocus.com/jefby1990/blog/13-03/292179_b4ebc.html,在上一篇中,笔者将笔者遇到的 make 错误简单的分析了下,但是由于疏忽,没有说笔者自己使用的是 QT 的那个版本,笔者用的是 QT 具体情况如下:

1、qt creator (qt 4.7)http://get.qt.nokia.com/qtsdk/qt-sdk-linux-x86-opensource-

2010.05.1.bin,这个是一个 bin 文件,下载后直接运行,就不做赘述了,按默认一路 next 即可,不用

更改什么参数。

2、qt lib for embedded linux,笔者下载的 qt lib 库下载的是版本 qt -lib-4.8.3,具体的地址如下:

http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.tar.gz

对于嵌入式开发来说,笔者个人认为环境配置起来一般都是比较纠结的,尤其是你刚开始什么都不懂的

时候,比如不知道 QT Cretator 和 Qt lib 库为什么要分成两个文件来下载,或者是怎么配置你自己的交叉

环境,让生成的可执行文件能够运行在 Zedboard 开发板上呢?

3、qmake.conf 文件,下载自 xilinx wiki,但官方是与 qt lib 4.7.3 打包的太大了,故笔者自己上传了

一份,请在此链接下载:http://pan.baidu.com/share/link?shareid=479369&uk=438936279

首先,先上下笔者成功配置完环境后生成的二进制可执行文件 hello_world 的情况吧,如图 1 所示

                                              图1
可以从 Machine 选项中看出目标机器为 ARM,即我们的 Zedboard 上的 PS 部分,说明生成的二进制文
件是正确的。
下面笔者将一步步说出自己是如何配置这个环境的;
1、在此之前,笔者提醒大家一下,要想成功配置好环境,必须细心,不要犯一些低级错误,该做
的地方千万不能偷懒,另外,个人建议下载笔者给出的链接文件。这个是笔者亲自实践过的,应该没有
问题。
2、首先确定你已经配置好了 XILINX 的交叉编译环境,安装好了 arm-xilinx-linux-gnueabi-gcc 等一系
列工具,具体方法如下:因为 ubuntu 默认使用的 shell 是 dash,故将其重新配置为 bash。方法:在这之
前请切换到 root 权限,(ubuntu 下是 sudo -s),其他请按自己情况输入.在命令行上输入 dpkg-reconfigure
dash,弹出一个对话框选择否,如图 2 所示:
                                                            图2
在 Xilinx Wiki 网站(http://wiki.xilinx.com/zynq-tools) ,下载 SourceryCodeBench,该文件是二进制文件,
运行即可,按图一步一步默认安装即可,安装完成之后,在命令行上输入>sudo -s (切换到 root)
> gedit /etc/bash.bashrc
在其中加上如下几句:
export ARCH=arm
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
export PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin:$PATH
然后关闭该文件,在命令行上输入 source /etc/bash.bashrc 使其立即生效。
3、安装 qt creator,参考开始部分第 1 条
4、下载 qt-lib 库,参考开始部分第 2 条,个人建议自己新建一个专门的目录,例如笔者将其存在目
录/home/jefby/zed/qt-lib 下,下载完成后将其拷贝到该文件夹下面,并解压缩,解压具体方法如下:
tar -xvzf qt-lib-库压缩文件 /home/jefby/zed/qt-lib(可以替换成你自己的目录)
5、下载 qmake.conf 文件,参考开始部分第 3 条,下载完成后将其拷贝到第四步解压目录的文件夹
/linux-arm-gnueabi-g++下,以笔者的目录为例,即为/home/jefby/zed/qt-lib/qt-everywhere-
opensource-src-4.8.3/mkspecs/qws/linux-arm-gnueabi-g++下。另外说明下笔者的这个 configure 文件
是对 xilinx wiki 的配置文件做了一些修改的,具体是将
include(../../common/g++.conf)
替换为
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
这个是因为笔者第一次直接用 xilinx wiki 下的 configure 文件编译,结果每次总是报错,说是缺少 gcc-
base-.conf 和 g++ - .conf 文件,然后笔者打开了目录/home/jefby/zed/qt-lib/qt-everywhere-
opensource-src-4.8.3/mkspecs/common 下的文件 g++.conf 找到了这条语句,具体如图 3 所示:
                                         图3
易知可以将其换为上述两条语句,主要是为了和以前老的 g++.conf 兼容。
6、新建文件夹存放安装完成后的 qt-lib 库,以笔者为例,新建目录/home/jefby/zed/qt-
lib/install,然后为了方便后面的使用,新建几个环境变量,方法如下:
>gedit /etc/bash.bashrc
在其中加入如下几句:
export ZYNQ_QT_BUILD=/home/jefby/zed/qt-lib //这个是你的 qt-库源码存放的目录
export ZYNQ_QT_INSTALL=/home/jefby/zed/qt-lib/install//这个是 QT 库编译完成后的安装目录
export PATH=$ZYNQ_QT_INSTALL/bin:$PATH//将其添加到环境变量 PATH 中
请根据自己情况修改,然后保存并关闭该文件,在命令行上输入 source /etc/bash.bashrc 使其立即生
效,此时继续输入$PATH 可以看到我们新加的路径已经添加进去了,具体如图 4 所示,
                                                             图4
7、切换到源码的目录下,以笔者为例即为/home/jefby/zed/qt-lib,方法直接输入 cd
$ZYNQ_QT_BUILD,即可,然后进入文件夹 qt-everywhere-opensource-src-4.8.3下,配置文件,具体如
下所示:
./configure -embedded arm -xplatform mkspecs/qws/linux-arm-gnueabi-g++ -little-endian -opensource
-host-little-endian -confirm-license -nomake demos -nomake examples -prefix $ZYNQ_QT_INSTALL
-embedded 选项为配置目标处理器
-xplatform 为配置交叉编译环境
-little-endian 为小端存储
其他的请使用 help 查看具体的参数,这一步是比较关键的,但会提示一些 error,不用理,那是因为缺乏
一些必要的工程文件,然后 make,这一步花的时间比较长,需要一定的耐心,另外这一步也是问题最
多的一个,例如图 5 所示即为笔者刚开始的时候编译的部分截图:
                                   图5
原因是因为笔者配置文件没写好,先 make clean,然后修改配置文件重新配置即可【笔者将
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
写成了
include(../../common/g++-unix.conf)
include(../../common/gcc-base-unix.conf)】
请大家引以为戒啊!
这一步完成之后,然后 make install,安装。
8、拷贝 xilinx 的库文件到 qt 库中,具体方法如下:
先切换到你安装交叉编译器的目录下,按如下目录找到文件并拷贝到$ZYNQ_QT_INSTALL/lib 库中,以
笔者为例,笔者的交叉编译器安装目录为/root/CodeSourcery,具体方法如下:
cp -p /root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-
gnueabi/libc/usr/lib/libstdc++.so* $ZYNQ_QT_INSTALL/lib
9、到这儿交叉编译环境就配置好了,我们可以新建一个 hello_world 项目来测试下,看是否成功了,
具体方法如下,打开 qt creator,默认安装在你的桌面上,双击打开即可,新建工程 hello_world,如图 6
所示,
                                                         图6
选择 qt gui application,然后 choose,如图 7 所示,
                                                 图7
笔者因为当前目录下已经有一个 hello_world 工程了,故提示,你们可以不用理,直接默认即可,一路
next,一直到 finish,完了之后关闭项目。
cd 到该工程目录下,在命令行下输入 qmake -project-name(hello_world.pro)
qmake
make
生成了和文件夹相同的二进制可执行文件 hello_world,在命令行下输入 readelf -h hello_world,如图 1所示,说明我们环境配置正确了!OK!现在可以做你想做的设计了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值