【Qt开发】Linux下Qt开发环境的安装与集成

摘要:
最近,我们需要在Linux下使用Qt进行C++开发,因此我们尝试在Linux下安装Qt开发环境。我的Linux是CentOS 6.5。我的操作系统是32位Linux,所以我选择Qt5.4.1作为32位Linux。需要注意的是,qt-opensource-linux-x86-5.4.1.run包包含用于qtcreator可视化的开发工具。安装后,在安装目录中找到Tools/QtCreator/bin目录,并找到QtCreator的可执行文件,QtCreator是Qt可视化的开发工具。第二行将qtcreator可视化开发工具中存储的绝对路径添加到环境变量path中。

近期工作需要在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

在该文件中加入如下几行:

Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客

 其中第1行为在1.2步骤中安装QT包时安装文件存放的目录,大家可以根据自己的安装路径来更改设置。

其中第2行将qtcreator可视化的开发工具存放的绝对路径加入到环境变量PATH中了。这样以后就可以在shell中直接执行qtcreator了。

其中第3行为安装QT包时安装文件中的lib库存放的目录,大家可以根据自己的安装路径来更改设置。执行如下命令

  .  /etc/profile

注意: . 和 /etc/profile 有空格
或者:
source /etc/profile

或者

重启linux,以使上述配置生效

1.4 qtcreator配置

如果上述1.3步骤配置完后,在shell终端执行如下命令:

qtcreator

应该能弹出如下qtcreator可视化的开发界面。

Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客

 如果没能弹出上述界面,请检查1.3步骤中环境变量是否设置正确。

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

Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客
现在用qtcreator向导建立一个C++工程,如果弹出如下窗体证明安装成功
Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客
 1.5 注意事项
请确保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版本,可以在qtcreator主界面的“help -> About Qt Creator”菜单弹出的对话框中可以看出,如下图所示:
Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客
 可以看到版本一致
必须牢记qt的sdk版本是适用于当前你手头的qtcreator的,否则会出现很多诡异,难缠的问题。
2 源代码的安装
从ftp://ftp.qt.nokia.com/qt/source链接下载源码。网上很多人说用的是qt-everywhere-opensource-src-4.8.1.tar.gz
但我用该源码包在执行make步骤时,碰到了很多难以搞定的错误就放弃了。之后我用的是qt-x11-opensource-src-4.5.3.tar.gz源码包。虽然这个包版本已经很老了,但就当练习装着玩下吧,期间也碰到了很多问题。
以下步骤都是以 qt-x11-opensource-src-4.5.3.tar.gz源码包来说明的
2.1 生成makefile文件
执行 tar -zxvf  qt-x11-opensource-src-4.5.3.tar.gz以解压源码包
cd到qt-x11-opensource-src-4.5.3目录执行如下命令:
./configure
以生成makefile文件,这个过程约10分多钟。
之后执行make以编译源码,这个过程中会弹出如下几个错误,现在罗列出来,供参考、排查:
Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客
 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 后面加入:
-fpermissive
Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客
 
2 error :'adoptref' was not declared in this scope, and no declarations were found by.....如上图所示。
解决方法:找到qt-x11-opensource-src-4.5.3/src/3rdparty/webkit/WebCore/JavaScriptCore/wtf/RefPtr.h在文件头部加入如下代码:
#include "PassRefPtr.h"
Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客
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
Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客

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

Linux下Qt开发环境的安装与集成 - danshiming - danshiming的博客

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开发环境的安装与集成》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇NoSQL和MemeryCache的出现意味着传统数据库使用方式的变革吗?Scrapy实战篇(八)之Scrapy对接selenium爬取京东商城商品数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux安全加固手册

1 身份鉴别 1.1 密码安全策略 操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换。 设置有效的密码策略,防止攻击者破解出密码 1)查看空口令帐号并为弱/空口令帐号设置强密码 # awk -F: '($2 == ""){print $1}' /etc/shadow 可用离线破解、暴力字典破解或者密码网站查询出...

操作笔记:linux下安装mysql

1,检查linux下是否安装了mysql shell指令如下: [root@iZ945sgm0ugZ ~]# rpm -qa|grep -i mysql 如果有的话:做出挨个删除(eg:rpm -ev mysql-connector-odbc-5.2.5-6.el7.x86_64) [root@iZ945sgm0ugZ ~]# rpm -qa|grep -...

Linux环境下Gitblit服务搭建及秘钥配置

一、安装gitblit服务 1、下载地址https://pan.baidu.com/s/1wQ3TEE_gw5xZvyFPZB9xFg 2、上传至linux服务器并解压缩 tar xvf gitblit-1.8.0.tar.gz 3、修改defaults.properties文件 vim /usr/local/gitblit-1.8.0/data/defa...

linux下将Python环境默认更改为Python3.6

1、删除原来指向python2的软链接 1 rm -rf /usr/bin/python 2、创建新的软链接 1 ln -s /usr/bin/python3.6 /usr/bin/python 3、查看是否更改成功 python -V //若显示版本信息为python3.6,则更改成功...

Debian下编译安装MPlayer

Debian下编译安装MPlayer MPlayer是Linux下一款优秀的媒体播放软件,然而在我的Debian系统下却一直没有用起来。说起其中的原因,一是因为如果使用Apt来查找安装,那么所安装上的是非GUI下的MPlayer程序,其实要论起来,这样的程序也是一样可以播放媒体文件,然而就个人的使用来看,如果只是播放一些MP3文件,那么还是相当不错的,...

Ubantu 16.04升级内核版本和还原到升级之前的内核版本的方法

一、查看系统信息 1、查看发布版本: 命令: lsb_release -a 运行结果: / 2、查看内核版本: 命令: uname -sr 运行结果: 二、升级内核的方法 1、内核下载地址:http://kernel.ubuntu.com/~kernel-ppa/mainline/ 。打开地址后,拖动鼠标到网页最底端,找到最新版本的内核v4.15...