1、 主机开发环境说明
1) Linux为华清远见开发环境V12B(Ubuntu 12.04)
2) 主机gcc版本为gcc-4.6.3
3) 交叉工具链版本为arm-none-linux-gnueabi-gcc-4.6.4
工具链使用需要统一,可根据实际情况切换工具链版本
2、 主机Qt开发环境搭建
1) 下载qt-opensource-linux-x64-5.4.2.run并安装到Linux任意目录下
下载路径:
http://www.qt.io/download-open-source/#section-2
这个网站是Qt官方下载界面提供所有平台下载需求本例实现linux下开发所以下载linux版本
2) 安装Qt开发环境
执行:
$ chmod 777 ./ qt-opensource-linux-x64-5.4.2.run
$ ./ qt-opensource-linux-x64-5.4.2.run
执行上述操作后,会弹出如下界面,按提示安装即可。
安装后开发界面如下:
3、 Qt-everywhere移植
1) 下载源码qt-everywhere-opensource-src-5.3.1.tar.xz到Linux任意目录下
2)下载路径:
http://www.qt.io/download-open-source/#section-2
3) 解压源码
执行:
$ tar xvf qt-everywhere-opensource-src-5.3.1.tar.xz
4) 修改源码
修改源码中qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf内容,修改后在生成的qmake默认配置中工具链为我们指定的工具链。
13 # modifications to g++.conf
14 QMAKE_CC = arm-linux-gnueabi-gcc
15 QMAKE_CXX = arm-linux-gnueabi-g++
16 QMAKE_LINK = arm-linux-gnueabi-g++
17 QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++
18
19 # modifications to linux.conf
20 QMAKE_AR = arm-linux-gnueabi-ar cqs
21 QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy
22 QMAKE_NM = arm-linux-gnueabi-nm -P
23 QMAKE_STRIP = arm-linux-gnueabi-strip
为
13 # modifications to g++.conf
14 QMAKE_CC = arm-none-linux-gnueabi-gcc
15 QMAKE_CXX = arm-none-linux-gnueabi-g++
16 QMAKE_LINK = arm-none-linux-gnueabi-g++
17 QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
18
19 # modifications to linux.conf
20 QMAKE_AR = arm-none-linux-gnueabi-ar cqs
21 QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
22 QMAKE_NM = arm-none-linux-gnueabi-nm -P
23 QMAKE_STRIP = arm-none-linux-gnueabi-strip
5) 拷贝configure.sh到解压后的源码目录下
6) 配置源码
创建configure.sh
在文件中添加:
./configure -prefix /opt/qt -release \
-opensource -qt-libpng -qt-libjpeg -plugin-sql-sqlite -widgets -qt-sql-sqlite \
-make libs -no-cups -no-nis -no-iconv -no-dbus -no-openssl -no-iconv \
-no-accessibility -no-sse2 -silent -xplatform \
linux-arm-gnueabi-g++ -nomake tools -nomake examples -nomake tests \
-qt-freetype -no-glib -strip -linuxfb -plugindir \
/opt/qt/plugin
这个配置与前几个版本有一定的区别,在以前版本里多数会有一个tslib的选项,且在移植linux内核触摸屏驱动时如果是多点触摸需要修改为单点触摸,在这个版本tslib和修改触摸屏驱动已经没有必要了,使用Qt默认触摸屏插件就能完美的支持当下使用最多的多点式电容触摸屏。
执行:
$ chmod 777 configure.sh
$ ./configure.sh
输入”yes”后按回车继续
属性如下内容便是配置成功
7) 编译安装源码
执行:
添加工具链路径到环境变量中,本例使用工具链版本为4.6.4
$ export PATH=$PATH: /usr/local/toolchain/toolchain-4.6.4/bin/
$ make
编译过程中没有提示错误即可实行下边操作
$ sudo make install
安装后会在/opt/目录下生成qt目录。
8) 根文件系统修改
首先需要一个可以使用的根文件系统,标准Linux根文件系统即可。
解压标准根文件rootfs.tar.xz到Linux下/source/目录下
$ tar xvf rootfs.tar.xz -C /source
将上文编译好的qt库拷贝到根文件系统中
$ cp /opt/qt /source/rootfs -a
修改根文件系统中的profile文件添加如下内容:
$ vi /source/rootfs/etc/profile
添加如下内容:
export QTDIR=/opt/qt
export PATH=$QTDIR:$PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugin
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export TSDEVICE=/dev/input/event4
export QT_QPA_GENERIC_PLUGINS=evdevtouch:$TSDEVICE
export QWS_MOUSE_PROTO=evdevtouch:$TSDEVICE
export set QWS_DISPLAY=LinuxFb:/dev/fb0
#export set QWS_SIZE=800x600
export set QWS_SIZE=1024x600
export set QWS_DISPLAY="LinuxFb:mmWidth300:mmHeight400:0"
export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/
export set
LD_LIBRARY_PATH=$QTDIR:$QTDIR/lib/:$QT_QPA_PLATFORM_PLUGIN_PATH:$QT_QPA_FONTDIR:$LD_LIBRARY_PATH
4、 Qt-Creater设置
1) 打开qtcreater
按照前文安装,qtcreater所在路径为:/home/linux/Qt5.4.2/Tools/QtCreator/bin
执行
$ cd /home/linux/Qt5.4.2/Tools/QtCreator/bin
$ ./qtcreater
在主界面中从菜单栏点击”工具”à”选项”
2) 配置qt版本
点击选项界面左侧“构建和运行”后选择”Qt Versions”选项卡最后点击右侧”添加”按钮
选择上节编译好的Qt-everywherezh中qmake的路径,本文路径为/opt/qt/bin/,选择后点击”打开”按钮
手动设置下会出现一条新的配置,然后点击”OK”按钮
3) 配置编译器
点击选项界面左侧“构建和运行”后选择”编译器”选项卡最后点击右侧”添加”按钮
点击”添加”后选择”GCC”
点击”浏览“
选择GCC路径,这里选择交叉工具链路径中g++路径,华清远见提供开发环境g++路径为/usr/local/toolchain/toolchain-4.6.4/bin/arm-none-linux-gnueabi-g++,选择后点击”OK”
4) 配置开发套件
点击选项界面左侧“构建和运行”后选择”构建套件(Kit)”选项卡最后点击右侧”添加”按钮
按图选择相应选择后,点击”Apply”然后点击”OK”关闭选项窗口