使用触摸屏,首先安装触摸屏矫正程序。

下载并解压tslib-1.4,进入主文件夹,运行:

1 [root@localhost ~]#./autogen.sh
2 [root@localhost ~]#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-none-linux-gnueabi.cache
3 [root@localhost ~]#./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=/安装文件夹
4 [root@localhost ~]#make
5 [root@localhost ~]#make install

暂且搁置一边。如今開始编译安装qt-embedded-linux-opensource-src-4.5.3

解压后进入文件夹,首先使用configure配置并生成makefile文件,開始我是在挂载到ntfs分区中运行到,可是不成功,也有可能是文件夹中有中文到原因,后来直接复制到Centos家文件夹,运行成功

 [root@localhost ~]#./configure -prefix (想要将qte安装到哪)-embedded arm -release -shared -fast -no-largefile -qt-sql-sqlite
-no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-gif -qt-libtiff -qt-libpng
-qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus
-no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed
-no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-usb -no-glib -qt-mouse-tslib -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
-qt-mouse-linuxtp -I/(tslib的安装文件夹) /tslib/include -L/(tslib的安装文件夹)/tslib/lib

然后运行make&make install成功安装。这里的安装文件夹,必须和制作根文件系统中存放fonts库到文件夹一致。

拷贝tslib的安装目录到自己文件系统 的usr/local中。改动tslib/etc/ts.conf文件,删除module_raw input前面到#,并删除全部凝视行,保证每一行都定格,否则会出现错误。



拷贝tslib/bin中的ts_calibrate触摸屏矫正程序到文件系统的usr/bin文件夹下。



在文件系统中依据刚才安装qt-embedded文件夹建立同样到文件夹,比方我安装在/usr/local/qtembed/文件夹,则在文件系统中:



mkdir -p usr/local/qtembed/lib/fonts将安装文件夹中到全部字体复制到此文件夹中。



在文件系统到usr文件夹中新建一个lib文件夹,将qt-embed/lib中到库文件复制到此文件夹



[root@localhost lib]# cp /usr/local/qtembed/lib/libQtCore.* libQtGui.so* libQtNetwork.so* ./



删除.al后缀和.prl后缀到文件。



编译一个qt实例。进入解压的qt-embedded-linux-opensource-src-4.5.3源代码文件夹的examples/widgets/wiggly文件夹,使用编译生成的



qmake工具生成makefile文件:/usr/local/qtembed/bin/qmake

然后make生成arm平台的可运行程序,复制到文件系统的usr/bin文件夹下。



最后配置环境变量,採用到方式是直接在etc/profile文件里加入:

export QTLIB=/usr/lib
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSEVENTTYPE=H3600 export LD_LIBRARY_PATH=$QTLIB:/usr/local/lib:$LD_LIBRARY_PATH
export QWS_SIZE=480*272
export QWS_MOUSE_PROTO=TSLIB:/dev/event0
export QWS_DISPLAY="LinuxFb;mmWidth35;mmHeight45:0" if [ -f "$TSLIB_CALIBFILE" ];then
wiggly -qws&
else
ts_calibrate
wiggly -qws&
fi

最后到if推断是用来推断etc文件夹下是否已经生成触摸屏矫正程序,若没有,则执行触摸矫正,若生成则直接执行wiggly程序。



运行mkyaffs2image制作bin文件.



附常见错误:segmentation fault



烧写到开发板后有时候qt程序并不能执行,而是出现如上错误。



事实上这样的错误原因非常多如:



1)、界面是否出超出开发板的屏幕大小

2)、这个是编译器问题,在qtcenter上有说到4.3的优化太厉害,解决方法有3种:

a、把project的makefile的cflag选项的O2降为O1,我直接降为-g,只是编译的程序就比較大了

b、换成4.1下面的编译器



c、改动qt的文件



我到开发板是因为開始我的分辨率没有设置对,导致。



所以出现错误要耐心排查。



在PC上安装

qt-x11-opensource-src-4.5.3

(1)进入解压后的qt文件夹,执行命令  ./configure

这里./configure不加參数即採用默认安装。我这边加了两个參数-qvfb -prefix /opt/Qt-x11-4.5.3。

后面假设要安装qvfb须加上-qvfb,-prefix 为改变安装文件夹的參数。

(2)执行命令  make

(3)执行make install

(4)解决qt现版本号与旧版本号冲突问题

打开/etc/profile文件,在该文件的末尾加上下面语句:

  1. export PATH=/usr/loca/qtembed/bin:$PATH
  2. export QTDIR=/usr/loca/qtembed
  3. export MANPATH=$QTDIR/man:$MANPATH
  4. export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export QMAKESPEC=$QTDIR/mkspecs/linux-g++(假设qmake编译时候出现错误:QMAKESPEC has not been set, so configuration cannot be deduced.Error processing project file: XXXXX.pro就增加这一行)

保存后注销重登陆。

执行qmake -v,显示版本号4.3.4,执行designer,即启动Qt4的设计界面。(安装文件夹 /opt/Qt-x11-4.5.3)

(6)编译qvfb(看个人情况是否须要安装)

(在安装qt-x11,执行./configure时,须加入-qvfb參数)

  1. # cd qt-x11-opensource-src-4.5.3/tools/qvfb/
  2. # make

编译好的命令会在/qt-x11-4.5.3/bin文件夹下;

为了方便调试,能够将qvfb可运行文件拷贝到/usr/local/Trolltech/Qtx86-4.5.3/bin/中;

TQ2440实现触摸屏和qt图形 解决segmentation fault的更多相关文章

  1. linux: QT安装时出现段错误segmentation fault

    环境:macOS 10.14.6 VMware Fusion版本:11.0.1 QT版本:qt-creator-linux-x86_64-opensource-2.5.2.bin 安装时出现:segm ...

  2. qt 单文档程序关闭时在delete ui处出现segmentation fault

    做了个显示图片的单文档程序. qt 单文档程序关闭时在delete ui处出现segmentation fault. 调试发现调用两次mainwindow析构函数. http://blog.csdn. ...

  3. Qt图形视图框架公开课资料

    接受CSDN学院的邀请,讲一次公开课,主题是Qt图形视图框架,报名链接在这里:http://edu.csdn.net/huiyiCourse/detail/228. 内容有两部分:自定义Item和拖放 ...

  4. Qt 图形特效(Graphics Effect)介绍

    原文链接:Qt 图形特效(Graphics Effect)介绍 QGraphicsEffect也是Qt-4.6引入的一个新功能.它让给图形元素QGraphicsItem增加更佳视觉效果的编程变得非常简 ...

  5. Pycharm出现Segmentation fault...(interrupted by signal 11: SIGSEGV)的解决方法

    众所周知,用pycharm远程服务器debug代码已经成为学习深度学习相关代码的有力工具,但是最近创建了一个虚拟环境,进行debug的时候,莫名会出现下面这个错误,看的我都抽风了 bash: line ...

  6. Segmentation fault (core dumped) 错误的一种解决场景

    错误类型 Segmentation fault (core dumped) 产生原因 Segmentation fault 段错误. Core Dump 核心转储(是操作系统在进程收到某些信号而终止运 ...

  7. [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget (第一部分)

    本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...

  8. Qt图形测绘窗口部件介绍

    Qt 图形测绘窗口部件,主要使用第三方窗口部件: 1.Qwt:http://qwt.sourceforge.net 开源免费 2.GraphPak: http://www.ics.com  收费 3. ...

  9. VSCode添加某个插件后,Python 运行时出现Segmentation fault (core dumped) 解决办法

    在VSCode添加某个插件后,Debug出现Segmentation fault (core dumped) 解决方案,在当前environment下运行: conda update --all

随机推荐

  1. pymongo处理正则表达式的情况

    在python里使用pymongo处理mongodb数据库,在插入或者查询的时候,我们有时需要使用操作符号,如set,in, 具体操作符的可以参考  https://docs.mongodb.com/ ...

  2. JS几种变量交换方式以及性能分析对比

    前言 "两个变量之间的值得交换",这是一个经典的话题,现在也有了很多的成熟解决方案,本文主要是列举几种常用的方案,进行大量计算并分析对比. 起由 最近做某个项目时,其中有一个需求是 ...

  3. 【LOJ】#2674. 「NOI2012」美食节

    题解 这道题的费用流如果朴素一点怎么建边呢 建出\(\sum_{i = 1}^{n} p^{i} M\)个点,第\(i\)个厨师的第\(j\)个点表示这个厨师倒数第\(j\)个做的是某道菜 这个点向汇 ...

  4. 如何使用django显示一张图片

    django显示图片对新手来说真的算是一个坑.. 这里记录下小白爬坑的历程. 首先,你需要一个可以运行的django服务器,能显示正常的html文本,无法显示图片 这是html的文本,可以显示文字,无 ...

  5. Scala入门3(特质线性化)

    尝试设计一套特质,灵活的改动整数队列.队列有两种操作:put把整数放入队列,get从尾部取出它们.队列是先进先出的,get应该依照入队列的顺序取数据.提示:可以用mutable.ArrayBuffer ...

  6. HDU - 2199 Can you solve this equation? 二分 简单题

    Can you solve this equation? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  7. 【原创】SQL Server常用脚本整理

    --1.禁用启用账号账号 set nocount on SELECT 'ALTER LOGIN ' + name + ' ENABLE' FROM master.sys.server_principa ...

  8. Android ListView 自动加载更多

    Android ListView下拉刷新 ListView是我们经常用来展示数据的一个控件,但是由于我们手机的性能和流量的问题,往往我们从服务器中取数据,不能一次性将数据取出来,比如一个新闻的手机AP ...

  9. [ 原创 ]学习笔记-三种向ListView中填充简单文本的方法

    Android 中ListView是很重要的一块内容 掌握ListView的基本用法 对学习安卓起着举足轻重的作用 今天就介绍一下三种向ListView 填充简单文本的方法 填充其他数据类型的用法之后 ...

  10. UVA1378 A funny stone game

    博弈论. 就是有一堆石子你拿走一堆中的一个,然后再向后面两堆中加两个问胜负 i<j<=k 所以我们可以直接通过sg函数计算,考虑问题的奇偶性,如果这一位是奇的我们才考虑,偶的可以模仿 然后 ...