zoukankan      html  css  js  c++  java
  • TQ2440实现触摸屏和qt图形 解决segmentation fault

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

    下载并解压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/中;


  • 相关阅读:
    第三次迭代目标
    UML用例图以及时序图
    第一次迭代目标完成情况及感想
    第四次迭代感想
    数据流图与数据流程图的区别
    第三次迭代感想
    速达的用例图与时序图
    第一次迭代的感想
    速达的WBS
    NABCD的分解
  • 原文地址:https://www.cnblogs.com/blfshiye/p/3756434.html
Copyright © 2011-2022 走看看