ubuntu下QT5.5安装

参考:

https://my.oschina.net/u/1177171/blog/502319?p={{page}}

https://blog.csdn.net/yaowangII/article/details/78529581

一、linux下安装Qt5.5.0

1、qt软件下载

       首先下载QtCreator,网址http://download.qt.io/archive/qtcreator/,里面有各种版本的QtCreator下载,我选择用的是Qt5.5.0。将qt-linux-opensource-5.0.0-x86_64-offline.run放在ubutun的/opt/目录下。

2、执行安装

     .进入目录/opt/,执行./qt-linux-opensource-5.0.0-x86_64-offline.run。这时候Qt的安装程序就会启动,根据提示一直按next就可以了,就像和windows上安装软件一样。在安装过程中,我的安装目录是/opt/QtCreator/。 

3、安装后查看

      .安装完成后,可以在/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下载。

        把下载好的文件放在ubutun的/opt/目录下,执行命令 tar zxvf qt-everywhere-opensource-src-5.5.0.tar.gz 来解压,解压完成后就会看到 qt-everywhere-opensource-src-5.5.0 目录。 

 2、编译器安装

     我的系统是Ubuntu 16.04编译器是arm-none-linux-gnueabi-gcc 4.8.3。在这里因为很多人(包括我们公司)都用友善之臂的FriendlyARM编译器,但是版本太旧了,arm-linux-gcc有bug,编译的时候才知道有多坑,这里我给个4.8.3的连接:http://www.veryarm.com/arm-none-linux-gnueabi-gcc进去下载最新的进行,或者网盘http://pan.baidu.com/s/1nt46q2t

编译:

3、修改编译配置文件

      在目录:qt-everywhere-opensource-src-5.5.0/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)

4、编译前改动

      qt3d和qtcanvas3d在编译的时候会报错,说是未识别模块,而且嵌入式的没有opengl,识 别了也会报错,导致编译失败,而且编译配置参数里面也没有这两个模块的配置。我的解决方法简单粗暴,在配置时参数加-no-opengl,然后打开qt- everywhere-opensource-src-5.5.0/qt.pro文件,找到:

addModule(qt3d, qtdeclarative qtimageformats)
addModule(qtcanvas3d, qtdeclarative)

这两行注释掉(#号注释),或者直接删掉。如果不注释掉,即使加了-no-opengl也会报错,编译失败。

5、执行配置

$./configure -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix /opt/Qt-5.5.0/armv7-a   -no-opengl

注意:红色部分是你的Qt库将要安装的位置,慎重,如果以后要装那,就写那。移动了位置,用的时候qmake找不到库。虽然可以配置,但是每个工程 用的时候都得配路径,很麻烦。-no-opengl表示没有 opengl。我没加参数-qreal float ,因为我发现,加上之后编不过。在编译到.../qtbase/src/gui/painting/qpdf.cpp的时候会报错。

6、编译安装

$make

等大概两个小时后

$sudo make install

在这里加sudo是因为,安装时会将库文件复制到上面第七步配置的安装目录(红色的/opt/Qt-5.5.0/armv7-a ),opt目录是需要root权限的。

7、编译平台插件

      由于Qt5以后,删除了嵌入式的QWS(Qt windows system-Qt窗体系统)换成QPA(Qt Platform Abstration -Qt平台抽象),平台插件在qt-everywhere-opensource-src-5.5.0/qtbase/src/plugins /platforms/下面。有各种平台的插件,基于frambuffer的插件是lunuxfb这个文件夹下,其他的还有android、ios、 winrt、windows等等,需要什么平台的编译就是了。QPA运行时要加参数,我还没试,还不知道,网上有人用了可以参考一下。


你可能感兴趣的:(C++_QT)