【Qt开发】Linux下Qt开发环境的安装与集成
近期工作需要在Linux下用Qt进行C++开发,所以就在linux下尝试装QT开发环境。本人用的linux是CentOS 6.5。现在对安装过程做出总结。有两种安装方式,下面分别详述:
1 图形化安装
1.1 安装包的下载与获取
到http://www.qt.io/download-open-source/#section-7链接下载。这个链接中分类罗列出了不同操作系统下的QT安装包。本人的操作系统是32
位的Linux,故我选择的Qt
5.4.1 for Linux 32-bit (546 MB) (info) 。
1.2 安装包的安装
下载完后,可以看到是后缀名为.run的文件,执行如下命令:
chmod +x qt-opensource-linux-x86-5.4.1.run
为安装包赋予可执行权限。(说明:qt-opensource-linux-x86-5.4.1.run为我下载的qt安装包名,当前最新版本为5.4.1)
然后执行如下命令:
./qt-opensource-linux-x86-5.4.1.run
此时会弹出图形化的安装界面,之后的操作就跟windows下安装软件差不多了。需要说明的是:qt-opensource-linux-x86-5.4.1.run包中包含了qtcreator可视化的开发工具,在安装完后,找到安装目录下的Tools/QtCreator/bin目录下发现有qtcreator可执行文件,该文件就是Qt可视化的开发工具。
1.3 环境变量的配置
执行
vi /etc/profile
在该文件中加入如下几行:

其中第1行为在1.2步骤中安装QT包时安装文件存放的目录,大家可以根据自己的安装路径来更改设置。
其中第2行将qtcreator可视化的开发工具存放的绝对路径加入到环境变量PATH中了。这样以后就可以在shell中直接执行qtcreator了。
其中第3行为安装QT包时安装文件中的lib库存放的目录,大家可以根据自己的安装路径来更改设置。执行如下命令
. /etc/profile
注意: . 和 /etc/profile 有空格
或者
重启linux,以使上述配置生效
1.4 qtcreator配置
如果上述1.3步骤配置完后,在shell终端执行如下命令:
qtcreator
应该能弹出如下qtcreator可视化的开发界面。

如果没能弹出上述界面,请检查1.3步骤中环境变量是否设置正确。
在上述界面中,选择:“Tools->Options->Build & Run”,在弹出的界面中,看看qtcreator是否自动为你设置好了qmake,如果没有,请找到QT 包中sdk中的qmake的路径(一般该文件在本文1.2步骤提到的安装文件存放目录下的Qt5.4.1/5.4/gcc/bin目录下)将其加入。如下:


The inferior stopped because it received a signal from the Operating System.
Signal name : SIGSEGV
Signal meaning : Segmentation fault.

可以看到版本一致

1 error: 'prepareComparison' was not declared in this scope, and no declarations were found by.....如上图所示。
找到qt-x11-opensource-src-4.5.3/src/xmlpatterns目录下的Makefile文件,在该文件的CXXFLAGS 后面加入:

解决方法:找到qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/JavaScriptCore/wtf/RefPtr.h在文件头部加入如下代码:
#include "PassRefPtr.h"

3 error :'erase' was not declared in this scope, and no declarations were found by....如上图所示。
解决方法:找到 qt-x11-opensource-src-4.5.3/src/corelib/tools/qmap.h文件的996行的24列,将erase改为this->erase

4:error :'getCachedDOMConstructor' was not declared in this scope, and no declarations were found by.....如上图所示。
解决方法:
找到 qt-x11-opensource-src-4.5.3/src/xmlpatterns目录下的Makefile文件,在该文件的CXXFLAGS 后面加入: -fpermissive

5 'insert' was not declared in this scope, and no declarations were found by.....如上图所示。
解决方法:找到 qt-x11-opensource-src-4.5.3/tools/porting/src/codemodel.h文件的99行的50列,将 insert 改为this->insert
个人建议将上述5个错误全部排除后再make,这样可以节省make的时间,整个make下来估计1小时左右,之后执行
make install
以安装
2.2 安装qtcreator
从ftp://ftp.qt.nokia.com/链接下载qtcreator下载下来后是后缀名为.bin的文件,执行
chmod +x qt-creator-linux-x86-opensource-2.5.2.bin
之后执行 ./qt-creator-linux-x86-opensource-2.5.2.bin就可以安装qtcreator了
2.3 环境变量的配置
同图形化安装步骤1.3,只不过QTDIR等请根据步骤1安装的qt的sdk路径等作出相应更改,这里不再详述。
2.4 qtcreator配置
同图形化安装的步骤1.4,这里不再详述。
2.5 注意事项
请确保qt的sdk和qtcreator版本的一致性,否则会出现很多诡异,难缠的问题。这里讲的用源码安装的QT的sdk和qtcreator因为这两个版本的不一致导致在qtcreator向导生成的QT工程中,在main函数的第一句代码QApplication a(argc, argv)就发生了如下的错误:
Signal received
The inferior stopped because it received a signal from the Operating System.
Signal name : SIGSEGV
Signal meaning : Segmentation fault.
当时找这个问题找了好久,必须牢记qt的sdk版本是适用于当前你手头的qtcreator的,否则会出现很多诡异,难缠的问题。
【Qt开发】Linux下Qt开发环境的安装与集成的更多相关文章
- linux下搭建lamp环境以及安装swoole扩展
linux下搭建lamp环境以及安装swoole扩展 一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源 我安装的环境是:apache2.2.15+mysql5 ...
- linux下Gnome桌面环境的安装
在实际工作中,无论是生产环境还是公司内部环境.很多时候装的linux系统都是最小化安装的.即没有桌面环境, 那么如果有时我们又需要一个桌面环境.该怎么安装呢?其实不难,现笔者将安装方法分享如下. 测试 ...
- deepin linux 下C开发环境配置
# deepin linux 下C开发环境配置 ## 前言-----------------------------deepin操作系统商店默认提供了 eclipse for c\c++但是系统没有提 ...
- Linux下golang开发环境搭建
对于golang开发来说,Windows下可以用vscode或者liteide都不错,但是Linux下的开发也就只有vim了,所以怎么搞笑的利用vim进行golang开发呢? 参考官方推荐的一个插件: ...
- Linux下Qt的安装与配置
参考资料:http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html Linux 下编译.安装.配置 QT 下载qt 这里用的是4.7. ...
- linux下C++开发工具
就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, anjuta,kd ...
- (转)Linux下C++开发初探
1.开发工具 Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户.例如,VS2008集成了编辑器,宏汇编ml,C /C++编译器cl,资源编译器rc,调试器,文档生成工具, nmak ...
- Linux下c开发 之 线程通信(转)
Linux下c开发 之 线程通信(转) 1.Linux“线程” 进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型.Linux是一种“多进程单线程”的操作系统.Linu ...
- 【转载】Visual Studio 2015 for Linux更好地支持Linux下的开发
原文:Visual Studio 2015 for Linux更好地支持Linux下的开发 英文原文:Targeting Linux Made Easier in Visual Studio 2015 ...
- Linux下c开发 之 线程通信
Linux下c开发 之 线程通信 1.Linux“线程” 进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型.Linux是一种“多进程单线程”的操作系统.Linux本身 ...
随机推荐
- DP+滚动数组 || [Usaco2007 Nov]Telephone Wire 架设电话线 || BZOJ 1705 || Luogu P2885
本来是懒得写题解的…想想还是要勤发题解和学习笔记…然后就滚过来写题解了. 题面:[USACO07NOV]电话线Telephone Wire 题解: F[ i ][ j ] 表示前 i 根电线杆,第 i ...
- ActiveMQ与Spring / SpringBoot 整合(四)
1. 对 Spring 的整合 1.1 所需jar 包 <!-- activeMQ jms 的支持 --> <dependency> <groupId>org.sp ...
- java8 新特性,stream的应用
https://www.cnblogs.com/fengli9998/p/9002377.html http://www.runoob.com/java/java8-optional-class.ht ...
- Vue原理解析——自己写个Vue
Vue由于其高效的性能和灵活入门简单.轻量的特点下变得火热.在当今前端越来越普遍的使用,今天来剖析一下Vue的深入响应式原理. tips:转自我的博客唐益达博客,此为原创.转载请注明出处,原文链接 一 ...
- UI控件Telerik UI for Silverlight发布R2 2019|附下载
Telerik UI for Silverlight包含了超过100个能用于纯Silverlight应用程序中或能作为现有ASP.NET应用程序的一部分的UI控件.通过与我们的WPF控件共享一个相同的 ...
- 关于 ant Checkbox.Group 数组checked 设置失效问题
最近在频繁使用ant UI框架.在使用到checkbox的时候,需要从后台获取数组显示,然后发现数组设置了checked:true,并不能使多选框处于选中状态,阅读 Checkbox Group 的属 ...
- Vue $root、$parent、$refs
Vue处理边界parent.$refs 下面的功能都是有风险的,尽量避免使用 Vue 子组件可以通过 $root 属性访问父组件实例的属性和方法 <div id="app"& ...
- mysql 查询碎片的方法
mysql 查询碎片的方法 mysql length,engine,data_free,table_rows group by table_name order by table_rows asc; ...
- eclipse中没有server选项无法配置Tomcat
eclipse集成Tomcat: 打开eclipse - 窗口 - 首选项 - 服务器 - 运行时环境 找到Tomcat然后添加. eclipse添加插件: 开发WEB项目时要集成Tomcat可以并不 ...
- codevs 5971 打击犯罪 x
题目描述 Description 某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接 ...