Linux开发二十二_Qt移植

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

Linux开发二十二_Qt移植_第1张图片

/usr/Qt5.8/examples/svg/embedded/fluidlauncher # ./fluidlauncher

Linux开发二十二_Qt移植_第2张图片

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源码

 

你可能感兴趣的:(嵌入式linux开发)