一: 源码下载地址:

1.1: 平台:

主机:ubuntu 14.04

开发板: cpu arm-cortex-a8,故而我在配置我的qmake.conf的时候填写的为armV7-a

QT版本: qt everywhere opensource 5.2.1

Busybox版本:busybox-1.22.0

arm交叉编译工具:arm-none-linux-gnueabi 4.8.1

1.2: 交叉编译工具:

版本: arm-none-linux-gnueabi 4.8.1

附上我用的交叉编译工具,我把他上传到csdn是为了备份.由于我的账号在csdn的限制为60M,故而我将文件分为了8份.由于写这篇文章的时候上传的资料智能看见第八份,故而这里只有这么一个链接.

http://download.csdn.net/detail/mkndg/7374909

1.3: Qt5.2.1下载地址:

http://download.qt-project.org/archive/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.tar.gz

1.4: tslib1.4下载地址:

http://download.csdn.net/detail/MKNDG/3291565

二: 交叉编译

步骤如下:

1:安装交叉编译工具

1.1: 将下载的交叉编译工具解压(用sudo解压),得到一个arm-4.8.1的文件夹,将其移动到/usr/local下面去

1.2: 添加全局环境变量:

vim /etc/bash.bashrc,在此文件的最后写上这一句:

  1. export PATH=/usr/local/arm-4.8.1/bin:$PATH

2:交叉编译tslib1.4

2.1:解压tslib1.4并进入其中,编写配置文件

  1. vim configTslib14.sh

在此文件中写入以下内容并保存退出:

  1. #!/bin/sh
  2. make clean && make distclean
  3. echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
  4. CC=/usr/local/arm-4.8.1/bin/arm-linux-gcc ./configure --host=arm-linux --prefix=/usr/local/tslib1.4 --cache-file=arm-linux.cache
  5. make && make install

然后:

  1. chmod a+x  configTslib14.sh && sudo ./configTslib14.sh

3:解压qteverywhere包:

  1. tar -xvf  qt-everywhere-opensource-src-5.2.1.tar.gz && cd qt-everywhere-opensource-src-5.2.1

3.1:编写configure文件:

vim 或者

  1. gedit configInstallQt5.2.1.sh

根据需要在里面写入需要的configure内容,我的配置如下:

  1. ./configure -prefix /usr/local/qt-5.2.1-embedded-arm-linux -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-javascript-jit  -no-sse2 -silent -xplatform  linux-arm-gnueabi-g++  -nomake tools -nomake examples -nomake tests -qt-freetype  -no-glib -strip -linuxfb -plugindir /usr/local/qt-5.2.1-embedded-arm-linux/plugins -I/usr/local/tslib1.4/include -L/usr/local/tslib1.4/lib -confirm-license "$@" -verbose

3.3:配置qmake.conf

  1. vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

我的此文件配置如下:

  1. MAKEFILE_GENERATOR      = UNIX
  2. CONFIG                 += incremental gdb_dwarf_index
  3. QMAKE_INCREMENTAL_STYLE = sublib
  4. QT_QPA_DEFAULT_PLATFORM = linuxfb
  5. QMAKE_CFLAGS_RELEASE   += -O2 -march=armv7-a
  6. QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
  7. include(../common/linux.conf)
  8. include(../common/gcc-base-unix.conf)
  9. include(../common/g++-unix.conf)
  10. QMAKE_INCDIR += /usr/local/tslib1.4/include
  11. QMAKE_LIBDIR += /usr/local/tslib1.4/lib
  12. QMAKE_CC                = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-gcc -lts
  13. QMAKE_CXX               = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++ -lts
  14. QMAKE_LINK              = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++ -lts
  15. QMAKE_LINK_SHLIB        = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-g++ -lts
  16. QMAKE_AR                = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-ar cqs
  17. QMAKE_OBJCOPY           = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-objcopy
  18. QMAKE_NM                = /usr/local/arm-4.8.1/bin/arm-linux-gnueabi-nm -P
  19. QMAKE_STRIP             = /usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-strip
  20. load(qt_config)

执行:

  1. chmod a+x configInstallQt5.2.1.sh &&  sudo ./configInstallQt5.2.1.sh && sudo make -j 8 && sudo make install -j 8

3.4:为qt添加tslib插件

  1. vim tslibPluginInstall.sh
  1. sudo cp qt-everywhere-opensource-src-5.2.1/qtbase/bin/qmake /usr/bin/qmake_emb_5.2.1
  2. cd qt-everywhere-opensource-src-5.2.1/qtbase/src/plugins/generic/tslib/
  3. sudo cp /usr/local/tslib1.4/include/tslib.h ./
  4. qmake_emb_5.2.1
  5. sudo make && sudo make install
  1. chmod a+x tslibPluginInstall.sh && sudo ./tslibPluginInstall.sh

三:将编译好的qt库以及tslib库移植到文件系统中并写好配置文件

根据需要将qt下面的库拷贝到文件系统,包括qt安装目录下面的plugins文件夹

  1. vim qtAndTsInstall.sh
  1. #!/bin/sh
  2. QTPATH=/usr/local/qt-5.2.1-embedded-arm-linux
  3. TSLIBPATH=/usr/local/tslib1.4
  4. NFSROOTPATH=~/nfsroot
  5. rm -rf $NFSROOTPATH$QTPATH/fonts
  6. cp ./fonts $NFSROOTPATH$QTPATH/ -arf
  7. sudo cp $QTPATH/lib/* $NFSROOTPATH$QTPATH/ -arf
  8. sudo cp $TSLIBPATH $NFSROOTPATH/ -arf
  9. rm -rf $NFSROOTPATH$QTPATH/*.la $NFSROOTPATH$QTPATH/*.prl
  10. sudo cp $QTPATH/plugins $NFSROOTPATH$QTPATH/ -arf
  1. chmod a+x qtAndTsInstall.sh && sudo ./qtAndTsInstall.sh

文件系统的profile文件如下:

  1. vim ~/nfsroot/etc/profile
  1. export QTDIR=/usr/local/qt-5.2.1-embedded-arm-linux
  2. export PATH=$QTDIR:$PATH
  3. export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
  4. export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
  5. export QT_QPA_FONTDIR=$QTDIR/fonts
  6. export TSLIB_ROOT=/usr/local/tslib1.4
  7. export TSLIB_CALIBFILE=/etc/pointercal
  8. export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
  9. export TSLIB_FBDEVICE=/dev/fb0
  10. export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
  11. export TSLIB_CONSOLEDEVICE=none
  12. export TSLIB_TSDEVICE=/dev/touchscreen
  13. export QT_QPA_GENERIC_PLUGINS=tslib:$TSLIB_TSDEVICE
  14. export QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE
  15. export set QWS_DISPLAY=LinuxFb:/dev/fb0
  16. export set QWS_SIZE=640x480
  17. export set QT_QWS_FONTDIR=$QTDIR/fonts/
  18. export set LD_LIBRARY_PATH=$QTDIR:$QT_QPA_PLATFORM_PLUGIN_PATH:$QT_QPA_FONTDIR:$TSLIB_ROOT/lib:$TSLIB_PLUGINDIR:$LD_LIBRARY_PATH

这样整个文件系统的环境就搭好了.交叉编译的时候用qmake_emb_5.2.1就可以了.

运行的时候直接运行,例如: ./test

Qt5.2.1交叉编译,带tslib插件的更多相关文章

  1. Qt5.12.0交叉编译

    Qt5.12.0 交叉编译 源码配置 修改 qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 文件 MAKEFILE_GENERATOR = UNIX C ...

  2. 通过数据库中的表,使用 MyEclipse2017的反向生成工具-->hibernate反转引擎引擎(MyEclipse2017自带的插件) 来反转生成实体类和对应的映射文件

    通过数据库中的表,使用 MyEclipse2017的反向生成工具-->hibernate反转引擎引擎(MyEclipse2017自带的插件) 来反转生成实体类和对应的映射文件   文章目录 Ja ...

  3. Arm-Linux 移植 QT5.9 带 tslib,QT-creator配置

    平台                : Ubuntu 16.04   QT                 :5.9.8 tslib                 : 1.4arm-gcc      ...

  4. qt-5.6.0 移植之tslib 配置及编译

    tslib 是qt启动时的一个触屏校正检验程序. 它的配置以及编译比较简单. 第一步, 下载tslib源码包: http://download.csdn.net/detail/MKNDG/329156 ...

  5. QT5.4 vs2013静态加载插件的sqlite静态编译

    1. 非常多同学在静态编译QT5完毕后, sqlite的驱动老是载入不进去, 原因可能是由于你没有例如以下操作: #include <QtPlugin> Q_IMPORT_PLUGIN(Q ...

  6. jquery带参插件函数的编写

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  7. maven(一)maven自带的插件

    关于org.apache.maven.plugins 前言 maven提供了很多插件给我们使用,解释3个java环境常用的maven插件, maven-jar-plugin, maven-compli ...

  8. Unity自带IAP插件使用(googleplay)

    https://blog.csdn.net/ar__ha/article/details/64439872 Unity Services里的Unity IAP对于IOS和GooglePlay的支付用这 ...

  9. MacOS如何正确配置Idea自带Maven插件的环境变量?(亲测)

    背景 安装了IDEA开发工具,想执行Maven的命令.但是又没有通过自己下载Maven的安装包进行安装,只是想直接使用IDEA自带的Maven插件来执行Maven的各种命令.由于刚开始使用macos对 ...

随机推荐

  1. marquee标签跑马灯连续无空白播放效果 纯CSS(chrome opera有效)

    marquee似乎没有设置首尾相连播放的属性,内容滚动时总会留出一段marquee本身长度的空隙,某些情况下很不方便: 捣鼓了一会,得出一种解决办法,关键有两点: 1.将需要滚动的内容复制一份于同一行 ...

  2. Xcode调试项目时取消弹出框提示授权

    问题2: instruments wants permission to analyze other processes.'DTServiceHub'需要控制另外一个进程,以便继续调试,键入密码以允许 ...

  3. ASP.NET动态网站制作(27)-- 三层框架(1)

    前言:今天主要介绍一下三层框架,给大家一个整体的概念.分层概念使得程序低耦合,更加健壮,扩展性更好. 内容: 1.三层: UI(表现层):主要是指与用户交互的界面.用于接收用户输入的数据和显示处理后用 ...

  4. 用Python和py2app写独立的Mac OS X 应用

    文/lovexiaov(简书作者)原文链接:http://www.jianshu.com/p/afb6b2b97ce9著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 前提 创建一个普通 ...

  5. Android开发:拖拽

    google官网的training和API两个地方都提到了拖拽的实现,两种方法不太一样. 方法一 training(https://developer.android.com/training/ges ...

  6. python正则表达式练习

    正则表达式修饰符 - 可选标志 正则表达式可以包含一些可选标志修饰符来控制匹配的模式.修饰符被指定为一个可选的标志.多个标志可以通过按位 OR(|) 它们来指定.如 re.I | re.M 被设置成 ...

  7. Win7 maven安装及配置

    1. 前期准备 ① jdk 1.8 ② maven 3.5.4 下载地址:http://maven.apache.org/download.cgi 2. 配置maven环境变量 ① maven解压到指 ...

  8. M²的经典语录

    1. If you failed, stop and think! You should work in the correct way. 2. If I can do all of it, why ...

  9. 【BZOJ1823】[JSOI2010]满汉全席 2-SAT

    [BZOJ1823][JSOI2010]满汉全席 Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只 ...

  10. 《从零开始学Swift》学习笔记(Day4)——用Playground工具编写Swift

    Swift 2.0学习笔记(Day4)——用Playground工具编写Swift 原创文章,欢迎转载.转载请注明:关东升的博客 用Playground编写Swift代码目的是为了学习.测试算法.验证 ...