2015-01-28linux
準備兩個文件:vim
qt-x11-opensource-src-4.5.3.tar.gzbash
qt-creator-opensource-linux-x86_64-3.3.0.run工具
一、得到源代碼測試
src 官網下載地址:ftp://ftp.qt.nokia.com/qt/source/nuxt
2009 年 10 月 1 日發佈的 qt-x11-opensource-src-4.5.3.tar.gz,大小 122 Mb。3d
二、解壓縮orm
tar xvfz qt-x11-opensource-src-4.5.3.tar.gzip
三、生成 makefile 文件ssl
./configure
這個時候他會問你:「Which edition of Qt do you want to use?」
而後給你兩個類型供選擇:
Type ''c'' if you want to use the Commercial Edition.
Type ''o'' if you want to use the Open Source Edition.
第一個是商業版,第二個是自由版。
選擇 ''o''(Qt/嵌入式自由版是Qt爲了開發自由軟件提供的嵌入式版本)。
這時候,出現許可界面。
選擇 ''yes'' 接受許可協議。
開始生成 makefile 文件。這個大約須要 5 -10 分鐘的時間。
四、Qt 編譯
gmake //如果此處出錯,解決辦法見下面
這個過程時間比較長,須要兩個小時左右。
五、Qt 安裝
運行 gmake install
默認安裝至 /usr/local/Trolltech/Qt-4.5.3
大約 5 - 10 分鐘。正常結束,安裝完畢。
運行 /usr/local/Trolltech/Qt-4.5.3/bin/designer ,看見 qt 啓動,也就是說 qt 安裝好了。
六、設置環境變量
1、先修改用戶環境變量
vi /home/defonds/.bashrc
在其最後添加如下信息
export QTDIR=/usr/local/Trolltech/Qt-4.5.3
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
2、再修改全部用戶環境變量
vi /etc/profile
在其最後添加如下信息
export QTDIR=/usr/local/Trolltech/Qt-4.5.3
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
3、測試一下
從新開一個終端,輸入命令:
qmake -v
輸出結果:
QMake version 2.01a
Using Qt version 4.5.3 in /usr/local/Trolltech/Qt-4.5.3/lib
輸入命令:
which qmake
輸出結果:
/usr/local/Trolltech/Qt-4.5.3/bin/qmake
證實 Qt 環境變量已經被配置成功。
qt-creator的安裝方法很簡單,即:
一、下載qt-creator-opensource-linux-x86_64-3.3.0.run
二、chmod +x qt-creator-opensource-linux-x86_64-3.3.0.run
./ qt-creator-opensource-linux-x86_64-3.3.0.run
接下來就是很是熟悉的安裝界面了
重啓一下就行了!
剛開始編譯時,gmake 沒用的方法:
經過以上的分析能夠知道,解決這個問題有兩種方法,一個就是更改qmake的連接,使得qmake這個命令連接到安裝目錄下咱們安裝版本的qmake,還有一種方法就是改環境變量。
先說更改連接的方法,經過上面的介紹,這個其實操做就比較直接和簡單了,命令和實驗結果以下:
root@emouse:/# rm /etc/alternatives/qmake
root@emouse:/#
ln -s /usr/local/Trolltech/Qt-4.8.4/bin/qmake /etc/alternatives/qmake
root@emouse:/# qmake -v
QMake version 2.01a
Using Qt version 4.8.4 in /usr/local/Trolltech/Qt-4.8.4/lib
能夠看到,qmake已經成功更改成4.8.4版本。
第二種辦法就是更改環境變量,這個我沒有嘗試,有興趣的本身驗證。
vi /home/defonds/.bashrc 用來修改用戶環境變量,在文件後面添加如下信息
export QTDIR=/usr/local/Trolltech/Qt-4.8.4
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
再修改全部用戶環境變量vi /etc/profile 一樣在文件後添加上面的環境變量信息。這種方法應該一樣可行。
交叉編譯ARM版 Qt (qt-everywhere-opensource-src-4.8.4)
因實際項目需求,需將Qt編譯成LINUX-ARM版,如下爲整個操做過程,使用Qt編寫的程序已在實際開發板上運行,在此貼出,希望能爲須要的朋友提供上幫助。
準備工做:
Linux內核版本:
開發電腦:Ubuntu12.04,開發板:linux-2.6.37
交叉編譯工具:
arm-none-linux-gnueabi 4.4.1
Qt安裝包:
qt-everywhere-opensource-src-4.8.4.tar.gz
安裝
一.安裝交叉編譯工具
1.本機使用的交叉編譯工具是:arm-none-linux-gnueabi
2.添加交叉編譯工具的路徑至相應環境變量中:
export PATH=/usr/local/arm-2009q1-203/bin/:$PATH
3.經過如下命令查看arm-none-linux-gnueabi編譯工具是否安裝成功
a. 執行:arm-none-linux-gnueabi-g++ -v
b. 執行:arm-none-linux-gnueabi-gcc -v
若是以上兩步都能正確打印對應的版本信息,則代表arm-none-linux-gnueabi編譯工具
已安裝成功!
二.交叉編譯ARM版Qt
1.下載Qt源碼包 qt-everywhere-opensource-src-4.8.4.tar.gz;
2.解壓Qt源碼包
tar -xvfz qt-everywhere-opensource-src-4.8.4.tar.gz
3.修改文件:
/usr/local/Qt-4.8.4-linux-arm/mkspecs/qws/linux-arm-g++/qmake.conf
# 設置交叉編譯工具鏈:
# 本項目使用的交叉編譯工具是 arm-none-linux-gnueabi-g++
#
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++
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = arm-none-linux-gnueabi-strip
4.(若有須要,需修改g++.conf文件)
修改文件: /usr/local/Qt-4.8.4-linux-arm/mkspecs/common/g++.conf
# 設置使用ARM高級特性的編譯標誌:
#
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a -mtune=cortex-a8 -mfloat-abi=softfp
5.配置Qt編譯選項
進入Qt解壓目錄,執行以下命令:
./configure -prefix /usr/local/Qt-4.8.4 -embedded arm -xplatform /qws/linux-arm-g++ -depths 16,24,32 -little-endian -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl -no-gtkstyle -qt-freetype -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-linuxinput -plugin-mouse-pc -fast -qt-gfx-transformed -opensource -confirm-license
或者寫一個腳本config.sh,內容如上,以後運行這個腳本:./config.sh
6.執行 make 命令;
該步驟大體須要2~3個小時
錯誤:qtconcurrentiteratekernel.cpp:(.text+0x3c): undefined reference to `clock_gettime'
修改:vim src/corelib/Makefile 加上-lrt
LIBS = $(SUBLIBS) -L/opt/qt-everywhere-opensource-src-4.8.4/lib -lpthread -lm -ldl -lrt
7.執行 make install 命令;
8.修改用戶環境變量
export ARMQTDIR=/usr/local/Qt-4.8.4
export PATH=$ARMQTDIR/bin:$PATH
export MANPATH=$ARMQTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$ARMQTDIR/lib:$LD_LIBRARY_PATH
9.測試 ARM 版 QT 是否安裝並配置成功:
a. 執行:qmake -v
打印如下對應信息:
QMake version 2.01a
Using Qt version 4.8.4 in /usr/local/Qt-4.8.4/lib
b. 執行:which qmake
打印如下對應信息:
/usr/local/Qt-4.8.4/bin/qmake
c. 編寫一個簡單的測試程序,文件名爲hello.cpp,進入該文件目錄,進行工程編譯,看是否能正確通編譯
hello.cpp源碼:
#include <QApplication>
#include <QDebug>
int main(int argc,char *argv[])
{
qDebug("Hello, welcome to Qt world!");
return 0;
}
順序執行如下操做:
@1. 執行:qmake -project hello1.cpp
生成 hello1.pro 工程文件
@2. 執行:qmake hello1.pro
生成 Makefile 文件
@3. 執行:make
生成 hello.o, hello 文件
若是執行@2步驟時出現如下錯誤:
QMAKESPEC has not been set, so configuration cannot be deduced.
Error processing project file: hello1.pro
則是 QMAKESPEC 變量沒有設置好,執行:
export QMAKESPEC=/usr/local/qt-4.8.4/mkspecs/qws/linux-arm-g++
cd /usr/local/Qt-4.8.4/lib/
file libQT* 看輸出信息是ELF ARM
以後將/usr/local/Qt-4.8.4/lib/libQt* 根文件系統/usr/lib/下