嵌入式Qt5.8移植-编译-支持VNC

本章介绍Qt交叉编译的过程

1.下载源码

  • 去上一篇文章中的下载地址 下载qt-everywhere-opensource-src-5.8.0.tar.gz
  • 使用命令 tar xvzf qt-everywhere-opensource-src-5.8.0.tar.gz 进行解压

    1.VNC说明

      在QT5之后,QT不再支持QWS机制,即-qt-gfx-vnc配置项在QT5之后不再支持,QT5使用QPA(Qt Platform Abstraction Qt平台抽象)进行取代,当QT需要支持新平台时,需要为其编译一个新插件,在qtbase/src/plugins/platforms目录下存在着该版本QT支持的插件工程,包括Android,linuxfb,directfb,以及我们需要的vnc,想要使用VNC,需要在配置时使用选项 –qpa vnc进行指定。

  • 进入上一步已经解压好的源码目录,将 /qtbase/mkspecs/ 目录下的linux-arm-gnueabi-g++ 进行如下修改,主要是将文件中的所有 linux-arm-gnueabi- 替换为了 arm-linux-(根据实际情况替换前缀)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #
    # qmake configuration for building with aarch64-linux-gnu-g++
    #
    MAKEFILE_GENERATOR = UNIX
    CONFIG += incremental
    QMAKE_INCREMENTAL_STYLE = sublib
    include(../common/linux.conf)
    include(./common/gcc-base-unix.conf)
    include(../common/g++-unix.conf)
    # modifications to g++.conf
    QMAKE_CC = arm-linux-gnu-gcc
    QMAKE_CXX = arm-linux-gnu-g++
    QMAKE_LINK = arm-linux-gnu-g++
    QMAKE_LINK_SHLIB = arm-linux-gnu-g++
    # modifications to linux.conf
    QMAKE_AR = arm-linux-gnu-ar cqs
    QMAKE_OBJCOPY = arm-linux-gnu-objcopy
    QMAKE_NM = arm-linux-gnu-nm -P
    QMAKE_STRIP = arm-linux-gnu-strip
    load(qt_config)

具体配置选项帮助见配置选项,我们需要的注意点有:

a) –prefix:在目标机上的安装目录,这是在目标机上执行程序时寻找链接库的位置。

b) –extprefix在宿主机上的安装目录,这个位置是我们使用Qt Creator进行交叉编译时寻找链接库的位置。

c) –qpa vn -qt-gfx-vnc在QT5之后不再支持qws机制,需要在配置时使用选项 –qpa vnc进行指定。

d)一般情况下我们不使用系统的png,jpeg等库,需要指定 –no-libpng,同理,我们配置-qt-libpng使用qt自带的png等库。

  • 使用如下命令进行编译之后等待完成即可
    1
    2
    3
    4
    5
    ./configure -prefix /usr/arm/qt5.8 -extprefix /usr/arm/qt5.8 -opensource -xplatform linux-arm-gnueabi-g++ -no-glib -no-cups -no-accessibility -no-openssl -no-libpng -no-libjpeg -qt-zlib -no-dbus -no-pkg-config -optimized-qmake -nomake examples -qtlibinfix DhSc -qpa vnc -debug -no-opengl -qt-libpng
    make -j4
    make install

安装完成后,就可以在 /usr/arm发现输出文件。

版权声明:本文为博主原创文章,转载需声明为转载内容并添加原文地址。

原文地址:http://coderdock.com

Dock wechat
欢迎您扫一扫上面的微信公众号,订阅我的公众号