• Qt 4.7.2移植到ARM教程


    Qt的移植包括步骤如下:

    1、下载并安装VMware WorkStation 12(最好比较高级的版本,早期的版本共享目录在虚拟机里可能显 示不了)。

    2、下载ubuntu 14.0.4(最好是lts版本,免去要自己去安装g++等一些需要的软件)。

    3、创建虚拟机并开启root用户

    • 按下Ctrl+Alt+T组合键打开终端命令窗口,输入并执行sudo  passwd  root,设置root用户密码。
    • 进入目录/usr/share/lightdm/lightdm.conf.d,打开50-unity-greeter.conf文件,在后面追加以下内容并保存,重启后就可以选择以root用户登录了。

      user-session=ubuntu
      greeter-show-manual-login=true
      all-guest=false

    4、环境准备

    • 安装automake、libtool 和主机上的Qt工具
      $ sudo apt-get install automake autoconf libtool m4
      $ sudo apt-get install libX11-dev libXext-dev libXtst-dev libXrender-dev 
      $ sudo apt-get install libqt4-core libqt4-dev libqt4-webkit qt4-demos
    • 安装交叉编译器

      将交叉编译器压缩包(gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2)放在/opt目录下,并解压在此处(arm-linux-gnueabihf),编译/etc/profile文件加入

      交叉编译器路径(export PATH=/opt/arm-linux-gnueabihf/bin:$PATH)。

    • 重启虚拟机,使环境变量生效,使用命令arm-linux-gnueabihf-gcc -v 检查环境是否生效。

    5、下载tslib和Qt

    6、编译安装tslib

    • 新建目录/opt/qt-4.7.2-arm,tslib和qt都会安装在该目录(很多arm板都只开放opt目录,安装这这里,以后移到arm板上比较方便)。
    • 解压tslib,解压后为tslib-master。
    • 编译安装tslib

      $ cd tslib-master

      $ ./autogen.sh

      $ ./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --host=arm-linux-gnueabihf  --prefix=/opt/qt-4.7.2-arm ac_cv_func_malloc_0_nonnull=yes

      $ make

      $ sudo make install

      完成后,tslib会按安装到主机/opt/qt-4.7.2-arm 目录下。
      进入下一步之前,先将主机中 //opt/qt-4.7.2-arm/etc/ts.conf 文件第二行“#module_raw input”的注释去掉,变为“module_raw input”,注意一定要顶格。

    7、编译安装qt

    • 解压qt-everywhere-opensource-src-4.7.2.tar.gz到/op目录下,重命名为qt-opensource-src.4.7.2。
    • 在qt-opensource-src.4.7.2/mkspace/qws目录将linux-arm-g++拷贝一份并重命名为linux-am335x-g++。
    • 进入linux-am335x-g++文件夹,修改qmake.conf文件内容

      #

      # qmake configuration for building with arm-linux-g++

      #

      include(../../common/g++.conf)

      include(../../common/linux.conf)
      include(../../common/qws.conf)

      # modifications to g++.conf
      QMAKE_INCDIR = /opt/qt-4.7.2-arm/include

      QMAKE_LIBDIR  = /opt/qt-4.7.2-arm/lib

      QMAKE_CC = arm-linux-gnueabihf-gcc -lts
      QMAKE_CXX = arm-linux-gnueabihf-g++ -lts
      QMAKE_LINK = arm-linux-gnueabihf-g++ -lts
      QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ -lts

      # modifications to linux.conf
      QMAKE_AR = arm-linux-gnueabihf-ar cqs
      QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
      QMAKE_STRIP = arm-linux-gnueabihf-strip

      load(qt_config)

    • 配置Qt

      ./configure -opensource -embedded armv7 -xplatform qws/linux-am335x-g++ --prefix=/opt/qt-4.7.2-arm -no-cups -nomake examples -nomake demos -qt-zlib -qt-libjpeg -qt-libmng -qt-libpng -depths 16,24,32 -qt-gfx-linuxfb -qt-gfx-transformed -no-gfx-qvfb -qt-gfx-vnc -qt-gfx-multiscreen -qt-kbd-tty -qt-mouse-tslib -no-openssl -no-phonon -no-phonon-backend -no-nas-sound -no-exceptions -svg -no-webkit -no-qt3support -no-multimedia -no-xmlpatterns  -DQT_QLOCALE_USES_FCVT -DQT_NO_QWS_CURSOR -no-pch -I/opt/qt-4.7.2-arm/include -L/opt/qt-4.7.2-arm/lib -confirm-license

      make

      make install

      完成后,qt4.7.2会安装到主机/opt/qt-4.7.2-arm目录下。

    • 设置环境变量,编辑/etc/profile文件,在最后添加如下内容

      export PATH=/opt/arm-linux-gnueabihf/bin:$PATH

      export TSLIB_ROOT=/opt/4.7.2

      export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

      export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

      export LD_LIBRARY_PATH=$TSLIB_ROOT/lib

       说明:

      1、 -embedded armv7:armv7是arm芯片的架构(arm9对应armv5,arm11对应armv6,cortex-a8和cortex-a9对应armv7)

    8、安装QT Creator 2.2.0,并设置

    9、移植Qt到开发板

    将/opt/qt-4.7.2-arm文件夹压缩后,拷贝到开发板/opt目录下再解压,在/etc/profile文件里配置环境

    export QTDIR=/opt/qt-4.7.2-arm

    export LD_LIBRARY_PATH/$QTDIR/lib;$LD_LIBRARY_PATH

    export QT_QWS_FONTDIR=$QTDIR/lib/fonts

    export QWS_SIZE=800x400

    export QWS_DISPLAY=LinuxFb:/dev/fb0(这个根据开发板而定)

    export QWS_MOUSE_PROTO=Tslib:/dev/input/mice(这个根据开发板而定)

  • 相关阅读:
    (转)运维角度浅谈MySQL数据库优化
    关于MySQL的null值
    MySQL优化——or条件优化
    MySQL优化原理
    Xcode Archive打包失败问题
    ionic3 对android包进行签名
    ios 审核未通过 相机相册权限问题
    js计算两个日期相差天数
    截取URL链接中字段的方法
    ionic3 自定义组件 滑动选择器 ion-multi-picker
  • 原文地址:https://www.cnblogs.com/zhangnianyong/p/8400601.html
Copyright © 2020-2023  润新知