QT移植
QT下载地址:
http://download.qt.io/archive/qt/
1.编译tslib(touch screen lib)
准备工作:确保以下工具安装完成
sudo apt-get install autoconf automake libtool
1.解压
tar xf tslib-1.4.tar.gz
cd tslib
2.生成configure
./autogen.sh
3.配置(成功生成Makefile)
./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
4.make
5.sudo make install
6.确认成功
cd /usr/local/tslib/bin
执行以下命令:
file ts_calibrate
ts_calibrate: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
注:
_open_missing_mode ();错误解决
vim tests/ts_calibrate.c
搜索 O_CREAT
if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) {
cal_fd = open (calfile, O_CREAT | O_RDWR,0777);
} else {
cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR,0777);
}
给open函数加上第三个参数0777
--------------------------------------------------------
2.编译QT库
1.解压最新版的交叉编译器(4.8.3)
tar xvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
编译器路径:
/home/csgec/software/arm-2014.05/bin
2.解压Qt源码包
tar xvf qt-everywhere-opensource-src-5.6.0.tar.gz
cd qt-everywhere-opensource-src-5.6.0/
3.删除3d模块
rm qt3d/ qtcanvas3d/ qtweb* -rf
4.修改编译器
vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
QMAKE_INCDIR += /usr/local/tslib/include
QMAKE_LIBDIR += /usr/local/tslib/lib
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
# modifications to g++.conf
QMAKE_CC = /home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX = /home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK = /home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = /home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-objcopy
QMAKE_NM = /home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = /home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-strip
load(qt_config)
5.配置参数
./configure -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix /usr/local/qtlib5.6.0 -silent -tslib -qt-sql-sqlite -no-opengl -no-dbus -no-iconv -nomake examples -nomake tools -nomake tests
6.make
7.sudo make install
最后显示:
make[2]: Entering directory `/home/csgec/software/qt-everywhere-opensource-src-5.6.0/qtdoc/doc'
make[2]: Nothing to be done for `install'.
make[2]: Leaving directory `/home/csgec/software/qt-everywhere-opensource-src-5.6.0/qtdoc/doc'
make[1]: Leaving directory `/home/csgec/software/qt-everywhere-opensource-src-5.6.0/qtdoc'
8.打包库和插件
cd /usr/local/qtlib5.6.0
sudo mkdir QtDir
sudo cp lib/ plugins/ QtDir/ -rf
sudo tar zcf QtDir5.6.0.tar.gz QtDir/
生成QtDir5.6.0.tar.gz,复制到tftp目录
cp QtDir5.6.0.tar.gz ~/tftp/
9.把上一步生成的压缩包下载到开发板
在开发板上运行以下命令
tftp -gr QtDir5.6.0.tar.gz 192.168.1.158
解压此压缩包
tar xvf QtDir5.6.0.tar.gz
10.把触屏库打包下载到开发板
cd /usr/local/tslib
sudo tar zcvf tslib.tar.gz lib/
cp tslib.tar.gz ~/tftp/
在开发板上运行以下命令
tftp -gr tslib.tar.gz 192.168.1.158
解压此压缩包
tar xf tslib.tar.gz
修改下解压后的目录名,把它放到QtDir目录下
mv lib/ tslib
mv tslib QtDir
11.配置开发板运行环境
vi qtconf.sh
#!bin/sh
export QtHome=/home/ldh/QtDir#注意你的QTDir放在哪个地址你就写哪个地址我放在的是/home/ldh下
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QtHome/lib
#平台
export QT_QPA_PLATFORM_PLUGIN=$QtHome/plugins/
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
#触屏
export QT_PLUGIN_PATH=$QtHome/plugins/
export QT_QPA_GENERIC_PLUGINS=tslib
export LD_PRELOAD=$QtHome/tslib/libts.so
#字体
export QT_QPA_FONTDIR=$QtHome/lib/fonts
运行以下命令使上面的配置生效
source qtconf.sh
执行以下命令测试配置是否成功
echo $QtHome
正常会显示以下信息
/home/ldh/QtDir
12.qtcreator配置
1.打开 tools->options 选择Build&Run
2.增加Compilers(编译器)
点击Add选择GCC
然后点击Browse选择g++
/home/csgec/software/arm-2014.05/bin/arm-none-linux-gnueabi-g++
选择完成点Apply
3.增加Qt版本
选择Qt Versions
点击Add
选择/usr/local/qtlib5.6.0/bin/qmake
选择完成点击Apply
4.增加工具包
选择Kits
点击Add
修改Complier为第2步设置的
修改Qt version为第3步设置的
Name改为Qt5.6.0-ARM
完成后点击Apply and OK
5.编译工程时要注意选择刚刚添加的工具包Qt5.6.0-ARM
同时选择release
最后rebuild
QT移植的更多相关文章
- 基于mini2440的Qt移植
花了很长时间,终于把Qt移植到mini2440开发板上了,不能说完全成功,总算是完成一大步,各中过程心酸,废话不多说,下面正式讲解移植过程. 移植环境: win7系统,虚拟机是ubuntu12.04 ...
- QT移植无法启动 This application failed to start because it could not find or load the QT platform
QT配置好在自己机器上可以运行,但在别人机器上一直弹出 "This application failed to start because it could not find or load ...
- 移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)
目前网上的大多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更老的 Qtopia ,但是目前 Qt 已经发展到最新的 5.7 版本了,我个人也已经使用了很长一段时间的 qt5.6 for w ...
- 【Linux开发】【Qt开发】ARM QT移植详细步骤教程
ARM QT移植详细步骤教程 米尔SAM9X5和A5D3X上默认的Qt版本是4.5.3,当这个版本的Qt库不能满足实际开发需求时,可通过此方法制定Qt开发.运行环境. 移植的步骤如下: 1.下载新版q ...
- 嵌入式开发 迅为4418开发板Qt移植移动4G模块第一部分
本文转自迅为论坛:http://topeetboard.com 了解更多:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-7744162139 ...
- Qt移植对USB鼠标键盘、触摸屏的支持
.USB键盘 经过一番搜索,发现对Qt键盘的支持主要关系到两个方面: 1. 键盘类型确定: 4.7以前的Qt版本,如果是PS2圆孔键盘,Qt编译时需加上选项:-qt-kbd-vr41xx(未测试):如 ...
- [转载]迅为4418开发板Qt移植移动4G模块第一部分
本文转自迅为论坛:http://topeetboard.com 平台:iTOP-4418开发板 1.首先要配置内核,这个一步和Android系统移植3G或者4G模块是一样的.一般模块的 ...
- 嵌入式QT移植
1 开发环境 目标版:FS4412(Cortex-A9)开发板 交叉工具链:arm-linux-gcc 4.6.4 版本 Qt:qt-everywhere-opensource-src-5.4.2. ...
- qt 移植到开发板
一.准备工作: 1.QT应用程序 2.工具链--->交叉工具链一安装,就会有标准的c库 3.扩展的第三方库(ARM)()触摸屏库(tslib.tar.gz) 4.QT库 二.使用交叉工具链编译t ...
随机推荐
- Hibernate配置过程可能发生的问题及解决方法
1.问题:Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentExceptio ...
- POJ 3624 Charm Bracelet 简单01背包
题目大意:有n件珠宝,每个珠宝的魅力值为v,重量为w,求在重量不超过m的情况下能达到的最大魅力值. 题目思路:简单的01背包,由于二维数组会超内存所以应该压缩成一维数组. dp[i][j],表示选取i ...
- css叠加原则,就近原则
<html><head lang="en"> <meta charset="UTF-8"> <title>< ...
- 为图片存储而作——记一次UEditor源码的修改
本文版权归博客园和作者吴双本人共同所有. 写在前面 这是一个数据爆发的网络时代,大家习惯于浏览图文直观带给我们的快速信息.大图片的存储和浏览经常会成为Web服务器的瓶颈.试想如果你的Web服务器依然 ...
- Python之路:堡垒机实例以及数据库操作
一.堡垒机前戏 开发堡垒机之前,先学习Python的paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作. SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码连接: ...
- JAVA基础--线程
sleep和wait的区别: 1. sleep是Thread的方法, wait是object的方法 2. sleep占着CPU睡觉, wait等待CPU,不占用CPU 线程是一个程序内部的顺序控制流 ...
- 2快速掌握OMD
我们已经知道使用ArcGIS Engine开发,也就意味着我们要和接口打交道,ArcGIS Engine中提供的接口和类加起来估计上万,但是用过ArcGIS Engine的人,知道这个数字不为过.Ar ...
- Windows下编译mxnet
操作系统: 64位Windows10 mxnet的构建和安装包括两个步骤: 第一步,编译出共享库 libmxnet.dll. 第二步,安装语言包,比如python等. 最小编译要求: 最新的支持C++ ...
- 解决IE6中PNG图出现灰色背景问题
第 1 种方法:定义一个样式,给某个div应用这个样式后,div的透明png背景图片自动透明了.(注意两处图片的路径写法不一样,本例中,icon_home.png图片与html文件在相同目录) < ...
- [转载]七天学会NodeJS
链接:http://nqdeng.github.io/7-days-nodejs/ NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS ...