PC平台:WINDOWS 10 64位 + 虚拟机Ubuntu 14.04
Xilinx设计开发套件:Xilinx_vivado_sdk_2015.4
开发板:Zed Board
USB摄像头:罗技 C270(720P)
Linaro是hard float编译的,查看文件系统下的动态库可以看出来,而之前一直使用的编译器arm-xilinx-linux-gnueabi是soft float的,所以必须得更换支持hard float的编译器,否则会出现编译出来的QT库无法加载的问题。
一、安装支持hard float的交叉编译器
# sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
二、编译QT库
先指定交叉编译器
# export CROSS_COMPILE=arm-linux-gnueabihf-
解压 qt-everywhere-opensource-src-4.7.3.tar.gz,进入到qt-everywhere-opensource-src-4.7.3目录
把xilinx提供的 qmake.conf替换到mkspecs/qws/linux-arm-gnueabi-g++/目录下
配置,因为编译时出现找不到openssl头文件,所以暂时被我禁用掉了-no-openssl
# ./configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -little-endian -opensource -host-little-endian -confirm-license -nomake demos -nomake examples -no-openssl -prefix /QT/安/装/路/径
# make
# make install
三、在ubuntu或者windows使用qt creator创建一个helloworld工程
四、交叉编译helloworld工程
把qmake路径export出来
# export PATH=$PATH:/QT/安/装/路/径/bin
进入helloworld工程目录
# qmake -project
生成Makefile
# qmake -spec /QT安装目录/mkspecs/qws/linux-arm-gnueabi-g++
# make
五、在zedboard上运行helloworld
把编译好的QT库拷贝到linaro文件系统,目录保持与ubuntu下的安装目录一致,如果运行的时候还是出现找不到动态库,那就手动设置一下
# export LD_LIBRARY_PATH=/QT安装目录/lib
# ./helloworld -qws
或者在/etc/ld.so.conf.d/创建qtlib.conf指定QT库路径,然后执行一下ldconfig命令,可以通过ldconfig -p确认一下
来源:luotong86的专栏
*本文已由作者授权转发,如需转载请联系作者本人获得授权