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

#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无法中文显示。经过很久才摸索出来的。



#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

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
b、等号之间不要留空格,否则会出现异常提示:
-bash: export : =:not a valid identifier。
c、出了在系统全局文件里修改环境变量,当然也可以去当前用户下 修改环境变量,
#vi /home/admin/.bash_profile
#source ~/.bash_profile
可以参考这篇文章《Sheell配置文件 环境变量设置》
#chmod u+x qt-creator-linux-x86-opensource-2.5.2.bin
#./qt-creator-linux-x86-opensource-2.5.2.bin
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
vi /usr/share/applications/qtcreator.desktop
- #include <QApplication>
- #include <QLabel>
- int main(int argc, char *argv[])
- {
- QApplication app(argc, argv);
- QLabel *label = new QLabel("Hello Qt!");
- label->show();
- return app.exec();
- }
- 执行以下命令,生成一个与平台无关的项目文件 hello.pro:
qmake -project
qmake hello.pro
- make
./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++无法搜到)
#yum list gcc-c++
#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之前需要安装几个开发包:
问题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,且运行该用户下运行工程才不会出现上述错误。
参考文章:
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 )的更多相关文章
- windows环境下搭建Java开发环境(一):jdk安装和配置
一.资源下载 官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人安装的是jdk1.8,百度云资源:链接:h ...
- windows环境下搭建Java开发环境(二):Tomcat安装和配置
一.资源下载 官网:http://tomcat.apache.org/ 本人安装的是Tomcat8.5,安装包百度云资源:链接:https://pan.baidu.com/s/17SDFsoS0yAP ...
- 在CentOS下搭建Android 开发环境
在CentOS下搭建Android 开发环境 目录 1.环境搭建 1.1.JDK安装 1.2.Eclipse安装 1.3.ADT安装 1.4.Android SDK安装 1.5.Android NDK ...
- [转载]在Windows下搭建Android开发环境
http://jingyan.baidu.com/article/bea41d437a41b6b4c51be6c1.html 在Windows下搭建Android开发环境 | 浏览:30780 | 更 ...
- Windows下搭建PHP开发环境
PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...
- mac os 下搭建android开发环境
mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...
- Mac下搭建php开发环境教程
方案一:原生安装 这篇文章主要介绍了Mac下搭建php开发环境教程,Mac OS X 内置了Apache 和 PHP,这样使用起来非常方便.本文以Mac OS X 10.6.3为例,需要的朋友可以参考 ...
- 【原创】windows下搭建vue开发环境+IIS部署
[原创]win10下搭建vue开发环境 如果要转发,请注明原作者和原产地,谢谢! 特别说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图: 详细的安 ...
- Windows下搭建Git开发环境
Windows下搭建Git开发环境主要有以下三种方法: 1,VS,vs2013和vs2015中已经集成了git插件了 2,msysGit+TortoiseGit 3,msysGit+SourceTre ...
随机推荐
- Bash玩转脚本1之自己的脚本安装程序
Bash之打造自己的脚本安装器 前言 还是理所当然的前言,我一直想找一套管理脚本的"框架",能让自己杂乱的脚本有点规整.无奈眼界尚浅,未能找到. 因此萌生自己写一点优化脚本的工具来 ...
- thinkphp中ajax使用实例(thinkphp内置支持ajax)
thinkphp中ajax使用实例(thinkphp内置支持ajax) 一.总结 1.thinkphp应该是内置支持ajax的,所以请求类型里面才会有是否是ajax // 是否为 Ajax 请求 if ...
- [tmux] Reuse terminal workspaces using tmux sessions
In this lesson, we'll learn how to detach from a running tmux session and leave it running in the ba ...
- [CSS] Re-order the appearance of grid items using the order property
As with flex items, we can set an order value on grid items. Let’s see how this affects the DOM and ...
- C++ 工具类 —— 词条类(Entry)
Entry 以键值对(key-value pair)的形式定义. template <typename K, typename V> struct Entry{ K key; V valu ...
- Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏
Unity 2D游戏开发高速入门第1章创建一个简单的2D游戏 即使是如今,非常多初学游戏开发的同学.在谈到Unity的时候.依旧会觉得Unity仅仅能用于制作3D游戏的. 实际上.Unity在2013 ...
- 利用SendMessage实现窗口拖动
原文:利用SendMessage实现窗口拖动 利用SendMessage实现窗口拖动 周银辉 想想以前用跟踪鼠标位 ...
- 检索08- SQL语句中的go与use用法
GO 1. 作用:向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号.2. 语法:一批 Transact-SQL 语句 GO 如 Select 1 Select 2 ...
- reflect(反射)了解一点点
A a = new A() 这个代码在程序编译阶段,会自己主动定位到A类上,而且新建一个A的实例. 可是假设我们希望程序在执行时.动态的创建一个A的实例.此时程序仅仅知道要从名字叫A的类中创建一个实例 ...
- 安装CentOS6.2操作系统
原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong ...