rainysky陪你一起在zedboard上移植qt+opencv(四):在zedboard运行QT
其实在zedboard上运行QT在懒兔子和超群晴天的博客的里面都有写过,还算比较详细,不过也算是为了完整性,rainysky还是要把整个的流程写一遍。在wiki里面也有完整的教材,大家可以参考下
?link=http%3A%2F%2Fwiki.xilinx.com%2Fzy...
首先是下载qt的源码,最好是与你的qt的板卡一样,如果是按照三安装的qt可以用qmake –v命令查看版本,(如果你要是认真的看qt的安装过程,你会发现,里面也有显示qt的版本号)
可以看到rainysky用的是4.8.1的版本,不同的安装时间可能版本号不一样。QT源码的下载地址是
?link=http%3A%2F%2Freleases.qt-p... 根据你自己版本号,将4.8.1改成你自己的,就可以下载源码包啦。Rainysky将下载的源码包放在了共享目录下,并且建立/opt/zedboard/qt 文件夹,命令如下:为了能保存好安装好的文件,在新建两个文件夹 /opt/zedboard/qt/build /opt/zedboard/qt/install ,效果如下
之前我们已经配置好了交叉编译环境使用的环境变量PATH和 CROSS_COMPILE,为了方便操作,还可以在设置如下几个环境变量。
export ZYNQ_QT_BUILD=/opt/zedboard/qt/build
export ZYNQ_QT_INSTALL=/opt/zedboard/qt/install
export PATH=$ZYNQ_QT_INSTALL/bin:$PATH
效果如下
记得一点,当你把这个终端关闭的话,环境变量就会失效,需要重新在设置下环境变量,如果想方便一点的话,可以安装(二)里面设置交叉编译环境一样,设置新的环境变量。
将源码包复制到build文件夹下面,并且解压。
为了能够安装配置QT,还需要下载一个软件包,Qt/Qwt sources archive(qt_build_src.tar 见附件),和qt的源码包一样。复制解压。
解压出来是四个文件:
qt-everywhere-opensource-src-4.7.3.tar.gz – Qt source archive
qmake.conf – Qt qmake configuraTIon file
qwt-6.0.1.tar.bz2 – Qwt source archive
qwtconfig.pri – Qwt qmake project include file
其实我们需要的只是qmake.conf 这一个文件,其他都不需要,(以后你会发现这个文件的更强大的功能,现在先不对这个文件进行修改),qt_build_src.tar里的qmake.conf配置文件复制到qt-everywhere-opensource-src-4.8.1/mkspecs/qws/linux-arm-gnueabi-g++目录下,这个文件用来告知QMake应该用哪个编译器来编译QT工程
然后对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
整个为:
其中-prefix $ZYNQ_QT_INSTALL是告诉系统,安装的路径在哪的
配置完成后进行编译:
make
编译好了就可以进行安装(安装需要在root权限下进行,rainysky进入系统的时候就是root权限,这样很方便):
make install
焦急的等了快半个小时,终于编译完成了。在install文件夹下面,就是安装的文件:
在wiki百科里面,还讲了编译Qwt,但我们用不到,也就没有进行编译,感兴趣的可以安装上面的来。
由于rainysky用的系统是SD自带的那个精简版的系统,容量比较小,没法直接将编译的文件复制到里面,只能做一个镜像啦。
做镜像的方法如下:
cd $ZYNQ_QT_BUILD
dd if=/dev/zero of=qt_lib.img bs=1M count=80
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
解释一个,bs=1M count=80这句话代表的意思是建的镜像的大小是80M,所以复制的时候要注意一点啦,不要比这个大。
此时在/opt/zedboard/qt/build 下面的文件qt_lib.img就是qt的库文件啦。
至此qt移植成功了。要把qt的程序在板卡上运行,必须需要一个可执行文件,已我们上一节的helloworld为例
在上图中的路径下以此输入
qmake –project
qmake
make
即可生成可以在zedboard上运行的helloworld程序
可以看到在输入qmake的时候生成了Makefile文件。
在zedboard板卡上运行的时候的命令为 ./helloworld -qws