Qt5.4.1移植到arm——Linuxfb篇
2015-07-29 09:15
691 查看
Qt5与Qt4对比有很大的改变,其最大的特性在于模块化,并且很明显的是不再见到Qt4用到的qws,Qt5新增了QPA系统,基于QPA使得Qt5移 植到一个新平台非常简单而又具有极强的底层扩展能力;同时,C++11 也获得全面支持,使用 C++11 新特性更为方便。下面讲述将Qt5.4.1移植到MYD-AM335X的步骤:
1、编译并安装tslib1.4。这部分按照“MYD-AM335X Linux 3.2.0 用户手册”第1.10.2章节的步骤即可,最终将安装到/usr/local/tslib中。
2、到https://download.qt.io/archive/qt/5.4/5.4.1/single/下载源码包qt-everywhere-opensource-src-5.4.1.tar.gz
3、解压:
4、指定所用平台的arm架构以及交叉编译器:
改成以下内容,实际应需要根据自己的开发环境作出相应改变:
5、根据自己的实际需求配置Qt:
6、编译安装:
7、移植Qt到开发板:
完成上述步骤后,qt5.4.1将被安装到/usr/local/qt5.4.1中。然后将/usr/local/中的qt5.4.1复制到开发板的/opt/目录中,将/usr/local/中的tslib复制到开发板的/usr/local/中。
8、设置开发板Qt环境变量:
添加下面内容:
保存退出后使上面的环境变量生效:
9、运行一些example:
我们可以看到用linuxfb方式的运行的QT是没有窗体边框的,这是qt5的一个特点,似乎是其为了更好的转移到手机等移动终端。
./configure -prefix /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/qt-5.2.1-embedded-arm-MuliTCS -xplatform linux-arm-fr
eescale-gnueabi-g++ -confirm-license -opensource -release -make libs -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-libpng -qt-zlib -tslib -no-sse
2 -no-openssl -no-nis -no-cups -no-glib -no-separate-debug-info -nomake examples -nomake tools -nomake tests -no-iconv -skip webkit -opengl es2 -verbos
e -no-xcb-xlib -qt-xcb -qpa xcb
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index xlib
QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a -mfloat-abi=softfp -mfpu=neon
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = arm-fsl-linux-gnueabi-gcc
QMAKE_CXX = arm-fsl-linux-gnueabi-g++
QMAKE_LINK = arm-fsl-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-fsl-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-fsl-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-fsl-linux-gnueabi-objcopy
QMAKE_NM = arm-fsl-linux-gnueabi-nm -P
QMAKE_STRIP = arm-fsl-linux-gnueabi-strip
load(qt_config)
#QMAKE_INCDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/include
#QMAKE_INCDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/libX11/include
#QMAKE_LIBDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/lib
#QMAKE_LIBDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/qt-5.2.1-embedded-arm-MuliTCS/lib
#QMAKE_LIBDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/libX11/lib
#QMAKE_LIBS+=-lXau -lxcb -lX11 -lX11-xcb
#QMAKE_INCDIR_OPENGL_ES2=/opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/include
#QMAKE_LIBDIR_OPENGL_ES2=/opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/lib
#QMAKE_LIBS_OPENGL_ES2=-lglapi -lGLESv2 -lEGL
1、编译并安装tslib1.4。这部分按照“MYD-AM335X Linux 3.2.0 用户手册”第1.10.2章节的步骤即可,最终将安装到/usr/local/tslib中。
2、到https://download.qt.io/archive/qt/5.4/5.4.1/single/下载源码包qt-everywhere-opensource-src-5.4.1.tar.gz
3、解压:
完成上述步骤后,qt5.4.1将被安装到/usr/local/qt5.4.1中。然后将/usr/local/中的qt5.4.1复制到开发板的/opt/目录中,将/usr/local/中的tslib复制到开发板的/usr/local/中。
8、设置开发板Qt环境变量:
我们可以看到用linuxfb方式的运行的QT是没有窗体边框的,这是qt5的一个特点,似乎是其为了更好的转移到手机等移动终端。
./configure -prefix /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/qt-5.2.1-embedded-arm-MuliTCS -xplatform linux-arm-fr
eescale-gnueabi-g++ -confirm-license -opensource -release -make libs -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-libpng -qt-zlib -tslib -no-sse
2 -no-openssl -no-nis -no-cups -no-glib -no-separate-debug-info -nomake examples -nomake tools -nomake tests -no-iconv -skip webkit -opengl es2 -verbos
e -no-xcb-xlib -qt-xcb -qpa xcb
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index xlib
QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a -mfloat-abi=softfp -mfpu=neon
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = arm-fsl-linux-gnueabi-gcc
QMAKE_CXX = arm-fsl-linux-gnueabi-g++
QMAKE_LINK = arm-fsl-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-fsl-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-fsl-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-fsl-linux-gnueabi-objcopy
QMAKE_NM = arm-fsl-linux-gnueabi-nm -P
QMAKE_STRIP = arm-fsl-linux-gnueabi-strip
load(qt_config)
#QMAKE_INCDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/include
#QMAKE_INCDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/libX11/include
#QMAKE_LIBDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/lib
#QMAKE_LIBDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/qt-5.2.1-embedded-arm-MuliTCS/lib
#QMAKE_LIBDIR += /opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/libX11/lib
#QMAKE_LIBS+=-lXau -lxcb -lX11 -lX11-xcb
#QMAKE_INCDIR_OPENGL_ES2=/opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/include
#QMAKE_LIBDIR_OPENGL_ES2=/opt/EmbedSky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/lib
#QMAKE_LIBS_OPENGL_ES2=-lglapi -lGLESv2 -lEGL
相关文章推荐
- Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches
- 深入理解Linux内核-进程调度
- 创建目录、删除、拷贝命令使用方法
- CentOS 6.3下Samba服务器的安装与配置
- linux定时任务的设置crontab
- linux kenrel 基本组成部分——中断(一)
- Linux提示no crontab for root的解决办法
- 如何申请linux kernel 的maillist
- centos/redhat中文支持安装
- Ubuntu 15.04 编译UE4 for Linux版
- Discuz!安装之Linux
- CentOS 7 下使用 Firewall
- linux查看和关闭后台执行程序
- linux下解压iso文件
- linux下解压iso文件
- 如何通过Linux命令行使用和运行PHP脚本
- Linux install Mysql server
- 把握linux内核设计思想(五):下半部机制之工作队列及几种机制的选择
- 使用 Xmanager 远程连接到 CentOS 7
- linux中没有dos2UNIX或者UNIX2dos命令怎么解决办法