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