ubutun12.04下安装QT5.5.0和编译ARM版本Qt

一、linux下安装Qt5.5.0

1、首先下载QtCreator,网址http://download.qt.io/archive/qtcreator/,里面有各种版本的QtCreator下载,我选择用的是Qt5.5.0,因为Qt5比Qt4丰富了一下功能,提供多了一些的API,符合我的需求。

2、把下载好的Qt5.5.0安装包,qt-linux-opensource-5.0.0-x86_64-offline.run放在ubutun的/opt/目录下。

3.进入目录/opt/,执行./qt-linux-opensource-5.0.0-x86_64-offline.run。这时候Qt的安装程序就会启动,根据提示一直按next就可以了,就像和windows上安装软件一样。在安装过程中,我的安装目录是/opt/QtCreator/。
4.安装完成后,可以在/opt/QtCreator/5.5/gcc/bin/qmake 查看qmake的版本如下
QMake version 3.0
Using Qt version 5.5.0 in /opt/QtCreator/5.5/gcc/lib
至此Linux 的Qt安装成功了。

二、移植Qt到ARM

1、要移植Qt必须要用到Qt的源码,在这里也是用Qt5的源码来移植。源码可以在http://download.qt.io/archive/qt/下载,选择文件qt-everywhere-opensource-src-5.5.0.tar.gz下载。

2、把下载好的文件放在ubutun的/opt/目录下,执行命令 tar zxvf qt-everywhere-opensource-src-5.5.0.tar.gz 来解压,解压完成后就会看到 qt-everywhere-opensource-src-5.5.0 目录。
3、接着就是开始进行编译的工作了。首先进去目录/opt/qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/linux-arm-gnueabi-g++ ,在这个目录下回看到qmake.conf文件,我们需要修改这个文件。
vim 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)

/*
以下是指定交叉编译工具链的具体路径(你也可以设置成环境变量,直接写arm-linux-gcc,这样就可以不用加上绝对路径,我这里因为linux下有多种版本的工具链,所以加上绝对路径,具体写法要看你的linux情况)
*/
#modifications to g++.conf   
QMAKE_CC                = /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-gcc
QMAKE_CXX               = /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++
QMAKE_LINK              = /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR                = /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-objcopy
QMAKE_NM                = /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-nm -P
QMAKE_STRIP             = /usr/local/arm/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-strip
load(qt_config)

4.修改完成后返回顶层目录/opt/qt-everywhere-opensource-src-5.5.0。这时候要通过执行configure来生成Makefile文件了。我这里通过写一个脚本来自动生成Makefile文件,说白了就是把configure的参数写在脚本文件中。

vim autoConfigure.sh

#!/bin/sh
./configure \
-v \
-prefix /usr/local/Qt-5.5.0-arm \   //指定安装的位置
-release \
-opensource \
-no-accessibility \
-make libs \
-xplatform linux-arm-gnueabi-g++ \  // 指定平台 linux-arm-gnueabi-g++ 就是上面我们编辑                                                      qmake.conf的那个文件夹
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-zlib \
-tslib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-pkg-config \
-no-separate-debug-info \
-I/usr/local/arm/tslib/include -L/usr/local/arm/tslib/lib   //指定tslib库,这是我linux中tslib库的路径

不清楚configure各种参数的意思可以查看http://blog.csdn.net/yaowangii/article/details/78529171

5、写好了脚本后就更改好权限并执行

chmod 777 autoConfigure.sh
./autoConfigure.sh

6、执行完毕之后,就会在目录下发现Makefile文件。
7、执行make,这是一个漫长的过长,估计要等一个半钟左右。
8、执行make install,最后Qt5移植完成了,在安装目录下/usr/local/Qt-5.5.0-arm/bin,就会发现ARM版本的qmake,如果是编译ARM版本的Qt程序,就需要用到这个qmake。

你可能感兴趣的:(Qt,Linux)