看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考《yum安装qt》
不过初步接触fedora,为了了解一下如何在linux上编译、安装开源代码,所以必须手动编译,走完这一趟。
-----------------------------------
一键安装完,qt编译所有必需库

yum install gcc-c++ libXtst-devel freetype freetype-devel fontconfig-devel libXrender-devel

------------------------------------
一、下载Qt源码:
首先说一下环境是Fedora15,qt4.7.4.
实际上fedora15,自带qt4.7.2的。我因为移植以前的旧项目,所以需要保持qt版本一致。
我通过VirtualBox共享文件,将win7下载的qt源码包,拷贝到fedora/home/admin/software目录下。
二、配置编译环境  
1、解压tar:
将qt源码,解压到/home/admin/programs
# cd /home/admin/programs
# tar -zxvf /home/admin/software/qt-everywhere-opensource-src-4.7.4.tar.gz
2.配置编译环境
 
提前安装一些rpm,否则./configure会出错。
 

#yum install gcc-c++ //安装g++编译器,否则./configure会报错,见本页《问题1》

#yum install libXtst-devel        //安装Lib库的开发包,否则./configure还会出错,见本页《问题3》

#cd qt-everywhere-opensource-src-4.7.4 //进入当前目录

#./configure   //    ./configure --prefix /usr/local/qt-4.7.4 我加了prefix参数,指定安装路径。在后期运行qtcreator编译的时候出现一个版本冲突的错误。

直接跳转到这一步:安装如下包,否则configure +字体库会出错。

#yum install freetype

#yum install freetype-devel

#yum install fontconfig-devel

#./configure -fontconfig //加了这个参数,qt在fedora中才会安装中文字库,否则后面qt无法中文显示。经过很久才摸索出来的。

可以参考我的文章《【Qt移植到linux】问题7 qt界面中文不显示,乱码等问题》

接着会出现选择版本,选择开源版
输入o
接着选择接受协议
输入yes
 
configure结束后:
三、编译及安装
 
   ./configure如果成功,就可以继续执行gmake(在其它linux版本中可能为make)。一般需要先检查一下几个必备的开发包(development package)是否已经安装好,如果没有,需要在软件包管理器中搜索、安装:
(fedora15里全名:libXrender-devel, libX11-devel,libXext-devel,libXtst-devel)
#yum install libXrender-devel (我的计算机上只有这个开发包,没安装)
#yum install libX11-devel (有了,就不用安装了)
#yum install libXext-devel(有了,就不用安装了)
#yum install libXtst-devel(有了,就不用安装了)
如果不执行上面的操作,在执行gmake的时候,会出错。请参考本页《问题6》

#gmake //漫长的编译,大概3-4个小时

#gmake install  //大概几分钟

小测试一下,运行 /usr/local/Trolltech/Qt-4.8.4/bin/designer ,看见 qt 启动,如下图所示,就说明QT已经安装成功。

 
 

四、其他配置


1、直接更改环境变量,我就是通过这个方法实现的,亲测成功。

1)、#vi /etc/profile 修改所有用户环境变量 ,在文件后添加如下变量内容,

QTDIR=/usr/local/Trolltech/Qt-4.7.4

PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/man:$MANPATH 【这个帮助文档的路径,我咋感觉qt目录下没有man呢】
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
 
PATH=/home/admin/programs/qtcreator-2.5.2/bin:$PATH 【后期安装了qtcreator加的路径】
export QTDIR PATH MANPATH LD_LIBRARY_PATH
#source /etc/profile 【为了使重新设置的环境变量生效运行,免重启了】
2)、保存后重启
 
 
备注:
a、也可以这样写环境变量
export QTDIR=/usr/local/Trolltech/Qt-4.7.4
export $QTDIR/bin:$PATH
export $QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
 #source /etc/profile  【为了使重新设置的环境变量生效运行,免重启了】
 

b、等号之间不要留空格,否则会出现异常提示:

-bash: export : =:not a valid  identifier。

c、出了在系统全局文件里修改环境变量,当然也可以去当前用户下 修改环境变量,

#vi /home/admin/.bash_profile

#source ~/.bash_profile

可以参考这篇文章《Sheell配置文件 环境变量设置》

 
2、安装/使用Qt Creator
     在官网 下载Qt Creator,截止到今日(2013-8-23), 最新版本为qt-creator-linux-x86-opensource-2.5.2.bin百度网盘下载
 
增加执行权限,并安装qtcreator

#chmod u+x qt-creator-linux-x86-opensource-2.5.2.bin

#./qt-creator-linux-x86-opensource-2.5.2.bin

修改环境变量
#vi /etc/profile 修改所有用户环境变量 ,在文件后添加如下变量内容,
export PATH="/home/admin/programs/qtcreator-2.5.2/bin:$PATH"  
保存后,重启系统。
运行qtcreator:
以管理员身份运行qtcreator
#su - root
#qtcreator
也可以直接将/home/admin/programs/qtcreator-2.5.2/bin目录下的Nokia-QtCreator.desktop 拷贝到fedora桌面文件夹。直接双击就可以启动Qtcreator
也可以自己手动创建Qt Creator桌面快捷方式
 

vi /usr/share/applications/qtcreator.desktop

将下面代码拷贝上去,保存
 
[Desktop Entry]   
Encoding=UTF-8   
Name=QtCreator   
Comment=Qt Creator   
Exec=/home/admin/programs/qtcreator-2.5.2/bin/qtcreator   
Icon=/home/admin/programs/qtcreator-2.5.2/bin/Nokia-QtCteator-64.png   
Terminal=false  
StartupNotify=true  
Type=Application   
Categories=Application;Development  
找到development目录,就可以找到Qt Creator。
 
 
五、编写一个Qt小程序测试
 
 
找个位置,创建一个 hello 目录,进入 hello 目录,编辑一个 hello.cpp 文件,内容如下:
  1. #include <QApplication>
  2. #include <QLabel>
  3. int main(int argc, char *argv[])
  4. {
  5. QApplication app(argc, argv);
  6. QLabel *label = new QLabel("Hello Qt!");
  7. label->show();
  8. return app.exec();
  9. }
  10. 执行以下命令,生成一个与平台无关的项目文件 hello.pro:
  11. qmake -project

然后输入以下命令,生成一个与平台相关的 Makefile 文件:
  1. qmake hello.pro

然后键入 make 命令就可以构建该程序:
  1. make
执行该程序将会弹出一个内有"Hello Qt!"字样的小窗口:
  1. ./hello

 
 
===================剩下的是补充知识=====================
六、安装过程中遇到的错误

问题1.  一个关于在Linux下安装QT的问题,运行./configure总是报错

运行./configure就报错了,错误如下:

g++ -c -o project.o -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -I/usr/local/qt/include/qmake -I/usr/local/qt/include -I/usr/local/qt/include -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/usr/local/qt/mkspecs/linux-g++ -DHAVE_QCONFIG_CPP project.cppgmake: g++: Command not found

gmake: *** [project.o] Error 127

qmake failed to build. Aborting.

解决方法:安装g++(gcc主要是为了编译c语言,g++是为了编译C++。fedora中g++叫:gcc-c++,直接yum搜索g++无法搜到)

查询是否安装了g++ 

#yum list gcc-c++

若是没有,安装g++

#yum install gcc-c++

安装g++编译包,参考这篇《yum安装g++》

问题2:安装完gcc-c++,运行./configure还是出错如下:

ln: failed to create symbolic link `mkspecs/default': Read-only file system

解决方法:因为我的qt安装包就是win7上共享文件夹过来的,但是在virturalBox共享文件里,是无法创建连接的。所以只需要将该安装包拷贝到linux其他文件目录下就不会遇到该错误了。参考《Read-only file system. What's wrong?》

The VirtualBox shared folder filesystem doesn't allow symlinks, unfortunately. Your only option is to deploy outside of the shared folders.

问题3:Basic Xlib functionality test failed!

解决方法:

这个错误主要是因为,XLib库没有安装,所以在编译X11平台时,应该保证,即那是因为没装有libxtst-dev,使用命令apt-get install libxtst-dev安装(若是有radhat系统安装包,可以在该包里面找到,然后用rpm命令安装。Libxtst-dev就是libXtst-devel-1.0.1-3.1.i386.rpm,有可能还需要安装libX11-dev,libXext-dev)

先查询一下 libxtst-dev的安装情况:

#yum list libxtst*

发现fedora15已经安装libXtst.i686,但是没安装libXtst-devel.i686

所以请安装libXtst-devel

#yum install libXtst-devel

安装成功:

问题4.安装qt后,执行qmake  -v命令,测试qt是否安装成功。但若是没有检测出正确结果,应该在/etc/profile文件中进行PATH环境变量的设置。设置方法如下:

设置方法1:

在/etc/profile文件中末尾添加如下代码:

export PATH=/qtdirector/bin:$PATH

例如:export PATH=/usr/local/Trolltech/Qt-4.5.2/bin:$PATH,qtdirector/bin为qmake的路径。也可以将该行代码写为两行即:

PATH=/usr/local/Trolltech/Qt-4.5.2/bin:$PATH

export PATH

设置方法2:

export QTDIR=/qtdirector/

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib

export PATH=$PATH:$QTDIR/bin

其中/qtdirector/为qt库和qmake所在的共同路径,$QTDIR/lib即/qtdirector/lib为qt库所在的路径,$QTDIR/bin即/qtdirector/bin为qmake所在的路径。

问题5. 当编译过程中出现该类似的错误:/opt/QtSDK/Desktop/Qt/474/gcc/lib/libQtGui.so:-1: 错误:undefined reference to `FT_Library_SetLcdFilter'

安装freetype-2.4.6.tar.bz2软件包,可以解决这个问题。

问题6.执行gmake的时候,出错:

/usr/bin/ld: cannot find -lXrender

collect2: ld returned 1 exit status

gmake[1]: *** [../../../../lib/libQtWebKit.so.4.7.4] Error 1

gmake[1]: Leaving directory `/home/admin/programs/qt-everywhere-opensource-src-4.7.4/src/3rdparty/webkit/WebCore'

gmake: *** [sub-webkit-make_default-ordered] Error 2

解决方法:

gmake之前需要安装几个开发包:

gmake之前一般需要先检查一下几个必备的开发包(development package)是否已经安装好,如果没有,需要在软件包管理器中搜索、安装:
    libXrender development package
    libX11-dev
    libXext-dev
    libXtst-dev
(fedora15里全名:libXrender-devel, libX11-devel,libXext-devel,libXtst-devel)
#yum install libXrender-devel (我的计算机上只有这个开发包,没安装)
#yum install libX11-devel
#yum install libXext-devel
#yum install libXtst-devel
 

问题7:新建一个qt程序测试一下,编译的过程中,出现如下错误:

Cannot mix incompatible Qt library (version 0x40702) wiht this library (version0x40704)

解决方法:系统KDE自动调用自带的qt4.7.2,我新安装的是qt4.7.4.所以发生了版本冲突。

最终测试出来,是因为我在前面./configure的时候,指定了qt的安装路径 -profixe。新版本qt没有完全覆盖旧的配置。直接重新configure,不在指定目录,选择fedora默认路径。后面就不会出现该问题了。废了我好大的劲啊。。。。。。我弥陀佛

经过测试,只有在root用户下启动Qt,且运行该用户下运行工程才不会出现上述错误。

参考文章:

3、《Linux下安装Qt》

5、《/usr/bin/ld: cannot find -lXrender》

http://blog.163.com/qimo601@126/blog/static/158220932013719115423596/

Fedora15下搭建QT开发环境及编译QT(提前一键安装完,qt编译所有必需库 yum install gcc-c++ libXtst-devel freetype freetype-devel fontconfig-devel libXrender-devel )的更多相关文章

  1. windows环境下搭建Java开发环境(一):jdk安装和配置

    一.资源下载 官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人安装的是jdk1.8,百度云资源:链接:h ...

  2. windows环境下搭建Java开发环境(二):Tomcat安装和配置

    一.资源下载 官网:http://tomcat.apache.org/ 本人安装的是Tomcat8.5,安装包百度云资源:链接:https://pan.baidu.com/s/17SDFsoS0yAP ...

  3. 在CentOS下搭建Android 开发环境

    在CentOS下搭建Android 开发环境 目录 1.环境搭建 1.1.JDK安装 1.2.Eclipse安装 1.3.ADT安装 1.4.Android SDK安装 1.5.Android NDK ...

  4. [转载]在Windows下搭建Android开发环境

    http://jingyan.baidu.com/article/bea41d437a41b6b4c51be6c1.html 在Windows下搭建Android开发环境 | 浏览:30780 | 更 ...

  5. Windows下搭建PHP开发环境

    PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...

  6. mac os 下搭建android开发环境

    mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...

  7. Mac下搭建php开发环境教程

    方案一:原生安装 这篇文章主要介绍了Mac下搭建php开发环境教程,Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例,需要的朋友可以参考 ...

  8. 【原创】windows下搭建vue开发环境+IIS部署

    [原创]win10下搭建vue开发环境  如果要转发,请注明原作者和原产地,谢谢! 特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图:     详细的安 ...

  9. Windows下搭建Git开发环境

    Windows下搭建Git开发环境主要有以下三种方法: 1,VS,vs2013和vs2015中已经集成了git插件了 2,msysGit+TortoiseGit 3,msysGit+SourceTre ...

随机推荐

  1. WebService--概述、JDk实现、AJAX调用

    一.Webservice概述 W3C组织对其的定义是,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计. Webservice服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来 ...

  2. (一)RabbitMQ消息队列-RabbitMQ的优劣势及产生背景

    原文:(一)RabbitMQ消息队列-RabbitMQ的优劣势及产生背景 本篇并没有直接讲到技术,例如没有先写个Helloword.我想在选择了解或者学习一门技术之前先要明白为什么要现在这个技术而不是 ...

  3. 安装hadoop1.2.1集群环境 分类: A1_HADOOP 2014-08-29 15:49 1444人阅读 评论(0) 收藏

    一.规划 (一)硬件资源 10.171.29.191 master 10.173.54.84  slave1 10.171.114.223 slave2 (二)基本资料 用户:  jediael 目录 ...

  4. 修改QList中的item(使用下标([index])才可以获得可修改的item的引用)

    QList算是最常用的集合了,今儿偶然间需要修改QList中的值,结果郁闷了.QList中提供了replace函数来替换item,但不是修改.而at().value()操作均返回的是const的ite ...

  5. android环境安装

    引言   在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环 ...

  6. Error while trying to retrieve text for error ORA-12705

    今天, 按照以前的学习笔记, 配置ProC 但是, 却发生了如题的错误. Google一下, 都是NLS_LANG环境变量设置有问题, 我核一下没有问题. 问题在哪? 原来是ORACLE_HOME环境 ...

  7. #308 (div.2) B. Vanya and Books

    1.题目描写叙述:点击打开链接 2.解题思路:本题要求统计数位的个数,简单的试验一下发现有例如以下规律:一个n位数的个数有9*(10^n)个.因此全部n位数的数位是n*9*(10^n)个.因此能够利用 ...

  8. [tmux] Enable mouse mode in tmux

    We'll learn how to use mouse mode in tmux, including enable mouse control for resizing, scrolling an ...

  9. 【codeforces 755C】PolandBall and Forest

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  10. Tomcat8及之后版本出现的The valid characters are defined in RFC 7230 and RFC 3986

    升级tomcat8及更高版本带来的问题 由于使用get请求,链接中参数携带特殊字符,由于Tomcat的新版本中增加了一个新特性,就是严格按照 RFC 3986规范进行访问 解析,而 RFC 3986规 ...