• Qt之qt4.7 和qt 4.8.4 交叉实践


    开发机环境搭建:

             测试环境:CentOs7.1  Ubuntu 12.0.4

             操作流程:

                         一、编译Qt4.7.0

             1)CentOS上实践

              1.tar xzvf qt-everywhere-opensource-src-4.7.0.tar.gz

              2.cd 解压目录下

              3.yum install libX11-devel libXext-devel libXtst-devel

               yum install libXrender*(我感觉可能上面库不够,出现报错)

              4../configrue --prefix=/usr/local/Trolltech/Qt-x11-4.7.0

              5.gmake

              6.gmake install

              测试安装qt-everywhere-opensource-src-4.8.4.tar.gz

              已成功!

            2)Ubuntu上实践

              1.设置root密码

                sudo passwd root
                加入密码,两次输入
              2.纯净版的Ubentu系统没有安装g++
                apt-get install g++
             3.源码包编译需要依赖libX11-dev libXext-dev libXtst-dev
                apt-get install libX11-dev libXext-dev libXtst-dev
             4.到qt官网下载qt-everywhere-opensource-src-4.8.4.tar.gz
             5.tar zxvf 压缩文件.tar.gz
             6.进入解压后文件目录,执行配置
              cd qt-everywhere-opensource-src-4.8.4/
              ./configure -prefix /usr/local/Trolltech/Qt-x11-4.8.4
              使用开源版本
              紧接着选o ,然后再yes
            6.编译
              make
            7.安装
              make install
            8.编译成功后
              测试/usr/local/Trolltech/Qt-x11-4.8.4/bin/designer
            9.设置环境变量:
              运行命令vim ~/.profile编辑该文件,在文件中添加:
              export QTDIR=/usr/local/Trolltech/Qt-x11-4.8.4 /*需要修改为你安装的目录*/
              export LD_LIBRARY_PATH=$QTDIR/lib
              export PATH=$PATH:$QTDIR/bin
              保存并关闭文件
              运行命令 source ~/.profile
              这样,就可以在任何目录下使用qmake.

           二、安装qtCreater

             1.Ubentu安装 

              apt-get install qtcreator

              终端中运行:qtcreator

                配置编译器

                 工具-》选项-》构建和运行 Qt版本手动设置qmake编译器。

                                参考网址:

                                      http://blog.csdn.net/lpp0900320123/article/details/24876159

                            2.CentOS安装

                                先查看版本号

                                我是32位,

                                http://qt.nokia.com/downloads下载 qtcreator2.6.2

                                chmod 777 qt-creator_*

                                ./qt-creator*

                                安装/opt/qt-creator*路径

                                设置qmake路径

                       三、qt4.8.4交叉编译及开发机搭建

             1.交叉编译tslib库(支持触摸屏的库函数)

                                 1>交叉编译tslib:

                tar xjvf tslib1.4.tar.bz2
                cd tslib1.4
                ./autogen.sh
                ./configure --prefix=/home/wwb/tslib1.4_install/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
                make
                make install
                本人使用的是博创科技生产的UP-CUP6410II
                在其中有写的shell执行脚本,解压后直接执行./build.sh即可

                             2.交叉编译qt4.8.4

                1)交叉编译

                   tar -xvzf qt-everywhere-opensource-src-4.8.4.tar.gz

                  cd qt-everywhere-opensource-src-4.8.4

                  ./configure -prefix /home/wwb/qt-4.8.4-arm -release -opensource -shared -no-fast -largefile -stl -qt-sql-sqlite -qt3support -qt-zlib

                   -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -qt-gfx-linuxfb -qt-gfx-qvfb -qt-kbd-tty -qt-kbd-linuxinput -qt-kbd-qvfb -qt-mouse-pc

                   -qt-mouse-linuxtp -qt-mouse-qvfb -embedded arm -host-little-endian -no-cups -no-3dnow -qt-freetype -depths all -xplatform               /qws/linux-arm-g++ -qt-mouse-tslib -I /home/wwb/tslib1.4-install/include -L /home/wwb/tslib1.4-install/lib

                  修改qt-everywhere-opensource-src-4.8.4/mkspecs/qws/linux-arm=g++/qmake.conf文件(添加lts参数)
                  QMAKE_CC = arm-linux-gcc -lts
                  QMAKE_CXX = arm-linux-g++ -lts
                  QMAKE_LINK_DHLIB = arm-linux-g++ -lts

                  make
                  make install
                  测试过程中出现:
                  在编译完成x86使用的qt应用程序后,在编译arm使用的程序就会出现错误,需要重新解压一份,重新进行操作。(此问题,应该是由配置文件造成的,

                  能力有限)编译webkit时,出现Project MESSAGE: Disabling video due the lack of 需要一些库做支撑,但是没有也没事。QT中WebKit是一个

                  开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox)等使用和Trident(也可称MSHTML,IE使用)。同时WebKit是苹果公司浏览器引擎。

                                      2)将编译好的qt-embeded放置到arm上测试

                  1.在挂载目录下创建一个目录,将编译好的代码拿过来。

                    cd /UP-CUP6410(挂在目录)
                    mkdir Trolltech
                    cd Trolltech
                    cp /home/wwb/qt-4.8.4-arm/ ./ -arf
                    cd qt-4.8.4-arm
                    cp /home/wwb/tslib1.4-install/lib/* /UP-CUP6410/Trolltech/qt-4.8.4-arm/lib/ -a
                    cp /home/wwb/tslib1.4-install/bin/* /UP-CUP6410/Trolltech/qt-4.8.4-arm/bin/ -a
                    cp /home/wwb/tslib1.4-install/etc/ /UP-CUP6410/Trolltech/qt-4.8.4-arm/ -a
                  2.修改当前目录中etc/ts.conf文件
                    vim etc/ts.conf
                    将第二行的#和空格去掉
                    :wq
                  3.arm端设置
                    mountnfs 58.154.51.187:/UP-CUP6410 /mnt/nfs
                    cd /mnt/nfs/Trolltech/qt-4.8.4/
                    export QTDIR=$PWD
                    export LD_LIBRARY_PATH=$PWD/lib
                    export TSLIB_TSDEVICE=/dev/event1
                    export TSLIB_PLUGINDIR=$PWD/lib/ts
                    export TSLIB_CONSOLEDEVICE=none
                    export TSLIB_CONFFILE=$PWD/etc/ts.conf
                    export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
                    export QWS_MOUSE_PROTO=tslib:/dev/event1
                    export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
                    export QT_QWS_FONTDIR=$PWD/lib/fonts
                    export QT_PLUGIN_PATH=$PWD/plugins
                    export LANG=zh_CN
                  说明:
                    TSLIB_TSDEVICE //触摸屏设备文件名。
                    TSLIB_CALIBFILE //校准的数据文件,由ts_calibrate校准程 序生成。
                    SLIB_CONFFILE //配置文件名。
                    TSLIB_PLUGINDIR //插件目录
                    TSLIB_CONSOLEDEVICE //控制台设备文件名
                    TSLIB_FBDEVICE //设备名
                    以上环境变量在实际开发中的实际配置可以根据实际情况决定。而这些指定的设备节点一定要和你的开发板上的/dev目录下的设备节点相对应。
                  4.执行触摸屏校准
                    ./bin/ts_calibrate

              四、后期使用问题集锦

                1.BUG :soft lockup detected on CPU#0

                                       系统时间出现问题
                                       date 一下发现板子的时间是1970年
                                        1)在虚拟终端中使用date命令来查看和设置系统时间
                                           #date
                                           设置系统时钟的操作
                                           #date 040310592016.30
                                            通用的设置格式
                                         2)使用hwclock命令查看和设置硬件时钟
                                            查看硬件时钟的操作
                                            hwclock -r
                                         3)同步系统时钟和硬件时钟
                                           硬件时钟与系统时钟同步
                                           #hwclock --hctosys//测试无用
                                            --hctosys表示Hardware Clock to SYStem clock。
                                            系统时钟与系统时钟同步
                                            hwclock --systohc
                                     2.QT程序编译时的错误:QMAKESPEC has not been set, so configuration cannot be deduced.
                                          添加系统变量:export QMAKESPEC=/home/wwb/qt-4.8.4-arm/mkspecs/qws/linux-arm-g++

                               五、知识补充:

                                    cp 命令知识补充

               参数:-a :相当于-pdr的意思(参数pdr分别为:保留权限,复制软链接本身,递归复制);
                  -p :连同档案的属性一起复制过来,而非使用预设属性。
                  -d :若来源文件为连接文件的属性(link file),则复制连接文件属性而非档案本身。
                  -f :为强制(force)的意思,若有重复或其他疑问时,不会询问使用者,而强制复制。
                  -i :若目的档已经存在时,在覆盖时会先咨询是否真的动作。
                  -l : 进行硬式连接(hard link)的连接档建立,而非复制文档本身。
                  -r :递归持续复制,用于目录的复制行为。
                  -s : 复制为符号连接文件(sumbolic link),亦即快捷方式档案。
                  -u : 若 destination比source旧才更新 destination.

    The future's not set,there is no fate but what we make for ourselves.
  • 相关阅读:
    AjaxPro版自动完成(Autocomplete)功能实现
    推荐一款小巧的截图工具
    在VS2008中设置jquery智能提示
    Jquery选择器全总结
    MD5消息摘要算法的那些事
    C#中的集合学习笔记
    委托,文件流,扩展方法学习笔记
    Jquery实现仿腾讯微薄的广播发表
    C#中的文件流学习笔记第一篇
    ASP.NET MVC小记第一篇
  • 原文地址:https://www.cnblogs.com/wang1994/p/5941524.html
Copyright © 2020-2023  润新知