银河麒麟+飞腾FTARM编译安装QT4.8.6版本

银河麒麟安装QT4.8.6版本

  1. 主要思路银河麒麟当前版本为V4,不是用的V10。V4的版本是基于ubuntu16进行的开发。所以安装QT4.8.6需要参考ubuntu来安装(这个是错误的,在绕过一大圈后发现这个错误原因,具体应该参考ARM编译QT4.8.6)。

  2. 首先下载QT4.8.6的源码,推荐找到下载地址后开迅雷下载。
    QT4.8.6源码下载地址

  3. 安装前准备,参考下面的连接,只用参考“步骤1、准备工作”即可(因为是ubuntu环境,这个是走弯路的原因)。
    准备工作

sudo apt-get install g++
sudo apt-get install libx11-dev libxext-dev libxtst-dev
  1. 解压QT4.8.6的包。
tar -xzvf qt-everywhere-opensource-src-4.8.6.tar.gz

后面的步骤就参考ARM情况下编译QT的步骤了。参考下面的链接。

  1. 修改arm交叉编译器
cd qt-everywhere-opensource-src-4.8.6/mkspecs/linux-arm-gnueabi-g++
vi qmake.conf

修改配置如下:

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

MAKEFILE_GENERATOR      = UNIX
TARGET_PLATFORM         = unix
TEMPLATE                = app
CONFIG                  += qt warn_on release incremental link_prl gdb_dwarf_index
QT                      += core gui
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                = aarch64-linux-gnu-gcc
QMAKE_CXX               = aarch64-linux-gnu-g++
QMAKE_LINK              = aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB        = aarch64-linux-gnu-g++

# modifications to linux.conf
QMAKE_AR                = aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY           = aarch64-linux-gnu-objcopy
QMAKE_STRIP             = aarch64-linux-gnu-strip

load(qt_config)

注意上面的环境可以在bash下输入看下是否存在相关编译器。

aarch64-linux-gnu-gcc
aarch64-linux-gnu-g++
aarch64-linux-gnu-ar
aarch64-linux-gnu-objcopy
aarch64-linux-gnu-strip

6.配置configure

  • -prefix

指定安装路径。默认的安装目录和平台相关,但是在configure时,可以通过-prefix选项指定安装目录,比如./configure -prefix /usr/local/Qt-5.9。这样一来,在执行make install指令时,编译完成的bin、lib或者其他子目录就会拷贝到/usr/local/Qt-5.9/目录中
交叉编译选项:

  • -xplatform

选项指定了目标平台和编译时使用的编译器,Qt支持的平台和编译器都在qtbase/mkspecs目录中。比如,在Ubuntu Linux系统中,Qt能被多种编译器编译,比如clang和g++。如下所示,指定qtbase/mkspecs/linux-arm-gnueabi-g++平台进行编译,也和刚刚修改的文件相对应。

  • -opensource

Compile and link the Open-Source Edition of Qt.

所以configure命令如下:

./configure -prefix /usr/local/Qt-4.8.6 -xplatform linux-arm-gnueabi-g++ -opensource

7.make&make install
make会等一段时间

sudo make

make install很快

sudo make install

以上就可以正确的安装QT4.8.6了

补充说明

  1. 交叉编译。
    交叉编译参考下面的文章。
    交叉编译详细说明
    因为一开始想的是用ubuntu的方法编译,但是忽略了底层是FT ARM架构。

  2. 编译平台,注意两者却别。
    linux-arm-gnueabi-g++
    eabi和oabi区别
    OABI中的O,表示“Old”,“Lagacy”,旧的,过时的,OABI就是旧的/老的ABI。
    EABI中的E,表示“Embedded”,是一种新的ABI。
    EABI有时候也叫做GNU EABI。
    OABI和EABI都是专门针对ARM的CPU来说的。

  3. 注意Make clean。编译失败后再次编译最好先make clean。

你可能感兴趣的:(系统运维,银河麒麟,QT4.8.6,交叉编译)