QT SDK 4.8.4下載地址:http://qt-project.org/downloads
根據需要版本自己選擇。
我選的是:Qt libraries 4.8.4 for Linux/X11 (225 MB)
下載後的源碼包:qt-everywhere-opensource-src-4.8.4.tar.gz
放到一個指定的目錄中。
**************************************************************************
我係統環境:
OS:Fedora 17
內存:1GB
CPU :Core2 1.6G 雙核
預安裝目錄/home/un/app/Qt
/home/un/app 是一個從/dev/sda ext4格式掛載過來的分區。
************************************************************************
http://qt-project.org/doc/qt-4.8/install-x11.html
(官網安裝步驟)
(一)本人安裝步驟簡介:
我全程用的root 權限
1.包解壓,# tar -xzvf qt-everywhere-opensource-src-4.8.4.tar.gz /home/un/app/tmp
注意,我下面的問題1就是出在解壓的目錄上。(我第一次把包解到了vfat格式的分區上了)
最好解壓的目標地址的文件系統格式與安裝地址的文件系統格式一致,
我的是安裝地址爲:/home/un/app/Qt/,源碼包解壓目標地址:/home/un/app/tmp,同爲ext4格式。
2.編譯環境與Makefile文件產生,# ./configure -prefix /home/un/app/Qt/
-prefix DIR 選項是預設安裝目錄,否則,默認會安裝在 /usr/local/Trolltech/Qt-4.8.4/
3.編譯,# gmake
這個時間相當長我經歷了大概有2~3小時
4.安裝,# gmake install
5.設置 環境
#PATH=/home/un/app/Qt/bin:$PATH
#export PATH
或者 修改家目錄下的~/.bash_profile 文件,來設置PATH使開機有效
# vi ~/.bash_profile
修改爲
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/app/Qt/bin
******************************************************************************
(二)下面說說我出現的問題與解決:
問題1.
# ./configure -prefix /home/un/app/Qt/
提示創建文件鏈接類錯誤,****沒有權限的信息。類似如下:
chmod: /mnt/winf/software_linux/QT/qt-everywhere-opensource-src-4.8.4/src/corelib/global/qconfig.cpp:新的權限爲r-xrwxrwx,而非r-xr-xr-x
Creating qmake. Please wait...
ln: 無法創建符號鏈接"mkspecs/default": 不允許的操作
g++ -c -o project.o -pipe -DQMAKE_OPENSOURCE_EDITION -g -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -Igenerators/integrity -I/mnt/winf/software_linux/QT/qt-everywhere-opensource-src-4.8.4/include -I/mnt/winf/software_linux/QT/qt-everywhere-opensource-src-4.8.4/include/QtCore
-I/mnt/winf/software_linux/QT/qt-everywhere-opensource-src-4.8.4/src/corelib/global -I/mnt/winf/software_linux/QT/qt-everywhere-opensource-src-4.8.4/src/corelib/xml -I/mnt/winf/software_linux/QT/qt-everywhere-opensource-src-4.8.4/tools/shared -DQT_NO_PCRE
-DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/mnt/winf/software_linux/QT/qt-everywhere-opensource-src-4.8.4/mkspecs/linux-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD
-DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DEPRECATED project.cpp
g++ -c -o property.o -pipe -DQMAKE_OPENSOURCE_EDITION -g -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -Igenerators/integrity -I/mnt/winf/software_linux/QT/qt-everywhere-opensource-src-4.8.4/include -I/mnt/winf/software_linux/QT/qt-everywhere-opensource-src-4.8.4/include/QtCore
-I/mnt/
當時沒有留意,就繼續gmake,編譯了。
結果,提示:
.............................
[../../lib/libQtGui.so.4.8.4] 錯誤 1
原因:我上網花了有一天時間找原因搜了很多相關資料沒有我的相關錯誤。
後來我想是不是文件系統的原因呢。
我把包,解壓到了 vfat格式的分區上了,然後從這個分區上做的編譯與安裝,造成Linux文件權限的問題呢。
雖然我的vfat 格式分區(windows XP 系統的 F盤,fat32格式,我通過fstab文件設置開機掛載),我給了足夠的權限umask=000,讀寫執行都沒問題,但還是不行。
解決:
我把包解壓到了ext4分區,
# tar -xzvf qt-everywhere-opensource-src-4.8.4.tar.gz /home/un/app/tmp
結果這個編譯錯誤過了。
這次gmake 花了很長的時間編譯。
問題2:
經過漫長的編譯過後,(編譯時我去睡了,沒管它早上醒來後)發現如下錯誤:
g++: 錯誤:unrecognized command line option ‘-fuse-ld=gold’
g++: 錯誤:unrecognized command line option ‘-fuse-ld=gold’
g++: 錯誤:unrecognized command line option ‘-fuse-ld=gold’
gmake[2]: *** [../../../../../../lib/libQtWebKit.so.4.9.3] 錯誤 1
gmake[2]: 離開目錄“/home/un/app/tmp/qto484/src/3rdparty/webkit/Source/WebKit/qt”
gmake[1]: *** [sub-WebKit-qt-QtWebKit-pro-make_default-ordered] 錯誤 2
gmake[1]: 離開目錄“/home/un/app/tmp/qto484/src/3rdparty/webkit/Source”
gmake: *** [sub-webkit-make_default-ordered] 錯誤 2
原因:
這個問題我是在網上找的原因與解決方法
原地址如下:.(Qt4.8.3移植總結 ---Wuyuan's Blog)
http://wuyuans.com/2012/11/qt4-8-3-transplant/
這是Qt的一個bug:https://bugs.webkit.org/show_bug.cgi?id=89312
在裝有gold linker的系統裏,編譯腳本會加入-fuse-ld=gold選項,但這個選項gcc是不支持的。
解決:
打開
.../src/3rdparty/webkit/Source/common.pri 文件,
找到:QMAKE_LFLAGS+=-fuse-ld=gold 這行。將前面加個#註釋掉
# QMAKE_LFLAGS+=-fuse-ld=gold,保存。
重新編譯