zoukankan      html  css  js  c++  java
  • Qt5.7.0移植到4412

    搞了几天,终于把Qt5.7移植到4412上,下面是一些自己移植过程中的记录,希望能帮到其他人。

    一、需要下载的文件,

    下载qt5.7源码qt-everywhere-opensource-src-5.7.0.tar.xz 
    http://www.download3k.com/Install-Qt.html

    下载ARM交叉编译工具arm-2014.05-29-arm-none-Linux-gnueabi-i686-pc-linux-gnu.tar.bz2 
    http://www.veryarm.com/arm-none-linux-gnueabi-gcc

    下载tslib1.4 
    http://vdisk.weibo.com/s/AcUHxOERV2k0?sudaref=www.baidu.com

    桌面系统是ubuntu14.04 32位 ,开发板目前搭载的系统是来自讯为的最小Linux系统。

    二、移植

    1.安装arm交叉编译器arm-2014,将下载的arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2解压到自己的安装目录,这里我选的是 /usr/local/arm  

    下来就是修改环境,打开etc/profile

    vi /etc/profile

    添加 

    export PATH=$PATH:/usr/local/arm/arm-2014.05/bin
    export CROSS_COMPILE=arm-none-linux-gnueabi-

    保存后 更新下  source /etc/profile

    控制台输入arm  按两下下table后如果出现arm-none-linux-gnueabi-gcc-4.8.3  说明可以了,也可以通过

    arm-none-linux-gnueabi-gcc -v  这条命令测试,如果出现一大串字母 ,最后一行是gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)  ,那就没问题了。

    2.安装tslib1.4

    将下载的tslib1.4解压到自己的目录 ,我选得是自己downloads文件夹 ,解压得到tslib1.4文件夹,在控制台进入这个文件夹,先安装一些东西,

    sudo apt-get install autoconf

    sudo apt-get install automake

    sudo apt-get install libtool

    安装完之后执行 

    ./autogen.sh
    然后
    ./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ --host=arm-none-linux-gnueabi  --prefix=/opt/tslib1.4 ac_cv_func_malloc_0_nonnull=yes
    prefix是自己的安装目录,自己决定。
    最后
    make
    sudo make install
    没出错的话就可以继续下一步了,出错了百度吧,估计是没安装什么东东。

    3. 编译Qt5.7的源码。
    在自己的downloads文件夹解压得到的源码,

    进入该文件夹,打开qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf  ,修改成下面的

    #
    # qmake configuration for building with arm-linux-gnueabi-g++
    #
    
    MAKEFILE_GENERATOR      = UNIX
    CONFIG                 += incremental
    QMAKE_INCREMENTAL_STYLE = sublib
    
    QT_QPA_DEFAULT_PLATFORM = linux #eglfs
    QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
    QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
    
    include(../common/linux.conf)
    include(../common/gcc-base-unix.conf)
    include(../common/g++-unix.conf)
    
    # modifications to g++.conf
    QMAKE_CC                = arm-none-linux-gnueabi-gcc
    QMAKE_CXX               = arm-none-linux-gnueabi-g++
    QMAKE_LINK              = arm-none-linux-gnueabi-g++
    QMAKE_LINK_SHLIB        = arm-none-linux-gnueabi-g++
    
    # modifications to linux.conf
    QMAKE_AR                = arm-none-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY           = arm-none-linux-gnueabi-objcopy
    QMAKE_NM                = arm-none-linux-gnueabi-nm -P
    QMAKE_STRIP             = arm-none-linux-gnueabi-strip
    load(qt_config)
    

      执行

    ./configure -release -opensource -tslib -xplatform linux-arm-gnueabi-g++ -prefix /opt/Qt-5.5.0/armv7-a -no-c++11 -no-opengl -I/opt/tslib1.4/include -L/opt/tslib1.4/lib
    

      没有错误的话 就 make && make install

    到安装文件夹下就出现了安装的文件

    那就成功了。

    三、安装qt-crearor3.3.0  

    从http://mirrors.hust.edu.cn/qtproject/archive/qt/   下载需要的版本,直接运行 ,一路 next 下去就行了。

    打开安装的qtcreator ,设置开发环境,如下图

    OK  用过windows版本的qt这应该没什么难度。

    四 、程序测试。

    将编译好的tslib1.4 和qt整个文件夹 拷贝到开发板的/opt目录,

    修改开发板环境:vi /etc/profile

    export TSLIB_ROOT=/opt/tslib1.4
    export QT_ROOT=/opt/qt-5.7.0   
    export TSLIB_TSDEVICE=/dev/input/event2
    export TSLIB_TSEVENTTYPE=input         
    export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
    export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts    
    export TSLIB_CONSOLEDEVICE=none                
    export TSLIB_FBDEVICE=/dev/fb0             
    export QWS_MOUSE_PROTO=tslib:/dev/input/event2
    export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib:$TSLIB_ROOT/lib/
    export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins                                              
    export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0                                                      
    export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts           
    export QT_QPA_GENERIC_PLUGINS=tslib
    

      QT_ROOT是qt库的目录。更新 source /etc/profile

    然后在串口命令窗中输入 vi /opt/tslib1.4/etc/ts.conf 来配置触摸屏 

    删除第二行前面的#就可以了,如果出错重新打开修改第二行,去掉空格和#

    一切搞完之后就可以编写qt程序了,将编译后的程序用u盘复制到开发板,./program  就可以运行了,但十有八九会报错缺少libstdc++.so  所以要复制一个libstdc++.so到lib目录下,到此,搞定。

    下面是我用的libstdc++.so。

    http://pan.baidu.com/s/1nvJbRB

    hb1m

    整个过程中很感谢 刘大神、彩阳博主和一名热心网友的帮助。

    参考的:

    http://www.cnblogs.com/topeet/p/5711957.html

    http://blog.csdn.net/u012175418/article/details/52704734?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

    http://www.cnblogs.com/emouse/archive/2013/01/29/2881311.html



  • 相关阅读:
    矩形法求积分sin cos exp
    约瑟夫环问题
    KMP算法详解
    找出float型数组的最大值和最小值,分别和第一个和最后一个元素互换
    二重指针应用
    C++学习笔记(一)
    Line学习笔记
    node2vec学习笔记
    deepwalk学习笔记
    如何保证消息不被重复消费?(如何保证消息消费时的幂等性)
  • 原文地址:https://www.cnblogs.com/t1029901995/p/6046600.html
Copyright © 2011-2022 走看看