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,保存。
重新编译