一、平台说明
主机平台:Ubuntu14.04
交叉编译器:arm-linux-gnueabihf-gcc-4.8
目标平台:iMX6S单板
Qt版本:qt-everywhere-opensource-src-5.3.2.
二、Qt5.3.2在Ubuntu平台交叉编译
1、下载Qt5.3.2
Qt官方网站下载qt-everywhere-opensource-src-5.3.2.tar.gz。然后解压缩到/home/qt目录下,命令:tar xzvf qt-every-opensource-src-5.3.2.tar.gz –C /home/qt。
2、下载arm-linux-gnueabihf-gcc、arm-linux-gnueabihf-g++
通过sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf命令下载gcc和g++。
3、指定交叉编译器
修改配置文件/home/qt/qt-everywhere-opensource-src-5.3.2/qtbase/mkspecs/
linux-arm-gnueabi-g++/qmake.conf
#
#qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
#modifications to g++.conf
QMAKE_CC = arm-linux-gnueabihf-gcc
QMAKE_CXX = arm-linux-gnueabihf-g++
QMAKE_LINK = arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++
#modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
load(qt_config)
4、配置Qt5.3.2
执行命令:./configure -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix $PWD/qtbase -no-openssl -qreal float
5、编译安装
配置完成后,执行:make –j4,然后再执行:make install –j4
三、Qt5.3.2在ARM-Linux平台的移植
1、文件lib plugins拷贝到单板上
把/home/qt/qt-everywhere-opensource-src-5.3.2/qtbase/目录下的lib、plugins拷贝到单板/opt/qt5目录下。
2、单板进行环境变量设置
在/etc/profile中添加如下变量:
export QTDIR=/opt/qt5
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
修改完成后,执行:source /etc/profil,使环境变量生效。
3、执行测试程序test
执行命令:./test