Linux开发二十二_Qt移植

2019-07-13 08:33发布

Linux开发二十二

Qt移植

象棋小子    1048272975 Qt是跨平台的应用程序和UI框架,它包括跨平台类库、集成开发工具和跨平台IDE。使用Qt只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。

1. Qt编译

从Qt官网下载最新的Qt5.8源码,可以在源码包中查看README文件等,确定编译、安装的步骤。 从README文件可以知道编译Qt5.8要求主机端编译器以及交叉编译器支持c++11的标准。而只有g++ 4.8以上的版本才完整支持c++11,在编译Qt5.8之前,需保证主机端编译器和交叉编译器已经更新或安装了g++ 4.8以上的版本。 在/qtbase/mkspecs/linux-arm-gnueabi-g++目录下,需要修改qmake.conf文件,加入下面选项,并修改相应的交叉编译工具。 QT_QPA_DEFAULT_PLATFORM = linuxfb QMAKE_CFLAGS_RELEASE   +=-O2-march=armv5te QMAKE_CXXFLAGS_RELEASE +=-O2 -march=armv5te   #modifications to g++.conf QMAKE_CC                = arm-linux-gcc QMAKE_CXX               = arm-linux-g++ QMAKE_LINK              = arm-linux-g++ QMAKE_LINK_SHLIB        = arm-linux-g++   #modifications to linux.conf QMAKE_AR                = arm-linux-ar cqs QMAKE_OBJCOPY           = arm-linux-objcopy QMAKE_NM                = arm-linux-nm -P QMAKE_STRIP             = arm-linux-gnueabi-strip /qtdeclarative/examples/quick/quick.pro,注释掉qtHaveModule(quickwidgets):SUBDIRS += quickwidgets, quickwidgets例程需要opengl的支持,这个例程会编译失败。 #    qtHaveModule(quickwidgets): SUBDIRS +=quickwidgets ./configure –h查看配置选项,Qt5.8自身支持触摸屏,可以无需其它的触摸屏库(如tslib)。 ./configure-prefix /usr/Qt5.8 -confirm-license -opensource -release -make libs -xplatformlinux-arm-gnueabi-g++ -optimized-qmake -pch -qt-libjpeg -qt-libpng -qt-zlib-no-opengl -no-sse2 -no-openssl -no-cups -no-glib -no-dbus -no-xcb -no-xrender-no-separate-debug-info -make examples -nomake tools -nomake tests -no-iconv make –j4,根据机器配置,编译需一个多小时。 make install,安装Qt,在/usr/Qt5.8目录下有相应的examples、lib、plugins等目录。

2. 环境变量

把Qt5.8安装目录下examples、lib、plugins目录拷贝到板端/usr/Qt5.8。使用Qt,系统必须知道Qt的位置,配置等等,在/etc/profile文件中加入Qt的环境变量。 QTDIR=/usr/qt5.8 export  QT_QPA_FONTDIR=$QTDIR/lib/fonts export  QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins export  QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0 :size=800x480:mmSize=800x480:offset=0x0 export  QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1   LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib export  LD_LIBRARY_PATH

3. 测试

板端启动系统,进入/usr/Qt5.8目录,运行Qt测试代码。 /usr/Qt5.8/examples/touch/pinchzoom # ./pinchzoom /usr/Qt5.8/examples/svg/embedded/fluidlauncher # ./fluidlauncher

4. 附录 

https://pan.baidu.com/s/1slczwhJ bootloader源码以及使用说明 https://pan.baidu.com/s/1eRDJtNs Qt5.8官网源码 https://pan.baidu.com/s/1nuGmSqt 本系列例程的根文件系统 https://pan.baidu.com/s/1i5btLGT opev3.2.0官网源码 https://pan.baidu.com/s/1pLpuHw3 yaffs官网源码  https://pan.baidu.com/s/1bpkZynt busybox-1.26.2官网源码 https://pan.baidu.com/s/1i4EtjfR tslib官网源码 https://pan.baidu.com/s/1i5MGRhb mplayer-1.3.0官网源码 https://pan.baidu.com/s/1sl0fXlr 基于S3C2416修改的linux-4.10.10源码