1. 程式人生 > >ubutun12.04下安裝QT5.5.0和編譯ARM版本Qt

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庫的路徑

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。