Linux平台QT开发环境搭建

栏目: 编程工具 · 发布时间: 5年前

内容简介:QT Library配置须知:直接下载使用我上面提供的编译好的Qt库,需要正确配置才能正常使用。可能出现的问题:
编辑推荐:
本文来自于csdn,本文主要介绍了在 Linux 平台下QT环境搭建的详细过程以及一些作者的踩坑记录等相关知识。

QT Library配置须知:

直接下载使用我上面提供的编译好的Qt库,需要正确配置才能正常使用。

可能出现的问题:

问题1:移入我编译的QT库至Ubuntu下的QT Creator中时,可能QT Creator中会提示“Qt version is not properly installed,please run make install”的问题。 该提示就是说,Qt没有被正确安装,请运行make install这个问题是比较常见的一个。

出现此问题的原因就是:qmake.exe是在Qt安装编译时生成的,里面内嵌了Qt相关的一些路径。如果直接拷贝过来使用,自己的路径结构与原来不同,则Qt库就不能正常使用。提示就是Qt version is not properly installed,please run make install Qt没有被正确安装,请运行make install。

既然路径信息是内嵌在qmake.exe中了,应该是没法通过修改配置的方式解决这个问题了。所以解决此问题有如下方案:

方案1:保持跟我编译时的库的安装路径一致。路径为:/usr/local/Qt-5.7.0 【推荐此方案】

具体就是下载我提供的Linux X64平台的Qt-5.7.0库后,拷贝至Ubuntu系统下解压,然后将解压后的Qt-5.7.0拷贝至/usr/local/路径下,并配置好环境变量。

方案2:修改qmake.exe中的qt_prfxpath字段。【不推荐】

只能对qmake.exe下手了。(修改前,别忘了先备份一下哦)用16进制编译器,打开qmake.exe文件,搜索71 74 5f 70 72 66 78 70 61 74 68 3d( qt_prfxpath = ***),我用IDA工具查看的我编译的Linux X64平台的Qt-5.7.0库。结果如图:

Linux平台QT开发环境搭建

问题2:在问题1通过方案1解决之后,构建QT项目时可能就会出现“error: cannot find -lGL”

原因:没有装好依赖库。

解决方案:重新执行 sudo apt-get install libgl1-mesa-dev 安装一系列依赖库。

最新搞一个新项目,需要在linux下进行QT开发,包括用到QCamera。

我下载了Qt的最新版本源码, 同时参考着一些旧的资料,将全部安装和使用过程都走了一遍,包括安装过程中的踩坑过程,都记录下来,以备日后查阅和同道共享。

一、环境搭建过程

步骤0、开发环境

首先介绍一下我的开发环境:

物理机:windows 10 64位;

虚拟器:Virtualbox 5.20;

虚拟机:Ubuntu 16.04 64位;

步骤1、准备工作

Ubuntu系统中,为了保证Qt的正常运行,必须安装一些必要的工具,包括g++编译器,以及一些必要的库。可使用以下命令安装:

sudo apt-get install g++

sudo apt-get install libx11-dev libxext-dev libxtst-dev12

如果你的Ubuntu已经安装g++和libX11-dev libXext-dev libXtst-dev,可以跳过本步骤。

步骤2、下载QT源码和IDE

要去Qt官网下载相应的源码和文件。我下载的时间是2017年2月底,此时,Qt Library的版本已经更新到了5.8.0,而Qt Creator的版本已经更新到了2.5.2。不过,鉴于网上部分网友的建议,说5.0之后的Qt库,用的人还比较少,一旦遇到问题,不太好解决,因此建议仍然使用5.0之前的库。所以,我就选择了5.0之前的最后一个版本的库,也就是4.8.6。至于Qt Library以及Qt Creator的具体下载地址如下:

步骤3、编译&安装Qt Library

Qt Library的源码下载完毕之后,随意解压到一个临时目录,然后进入该目录进行配置和编译,具体步骤如下:

1、解压

tar xvJf qt-everywhere-opensource-src-5.7.0.tar.xz

2、配置

cd qt-everywhere-opensource-src-5.7.0

./configure

然后终端会出现让你选择商业版还是开源版,输入字母o选择开源版。然后会有协议让你接受,输入yes就OK了。系统就会开始对整个项目进行配置,稍等片刻就好。

3、编译

配置完毕之后,终端会提示如下信息:

 Qt is now configured for building. Just run ‘make’.
 Once everything is built, you must run ‘make install’.
 Qt will be installed into /usr/local/Qt-5.7.0
 To reconfigure, run ‘make confclean’ and ‘configure’.

此时,按照要求输入make便会开始编译生成Qt库,同时编译所有演示程序。这个过程比较漫长,耐心等待便可。

编译在我电脑上耗时1.5小时左右。编译过程中,遇到的一些坑详见后面“踩坑记录”。

4、生成

Qt编译完成后,需要输入make install来安装,注意make install需要root权限,所以要加sudo。

sudo make install

安装过程比较快,安装完毕后,首先要进入Qt安装目录测试一下Qt是否安装成功,Qt默认安装在/usr/local/Qt-5.7.0目录里面,所以直接找到该目录,进入qmake所在的bin文件夹,然后输入./qmake -v指令,如果出现正确的版本信息,则表示安装成功了。

Linux平台QT开发环境搭建

输入./qmake -v指令,如果出现正确的版本信息:

Linux平台QT开发环境搭建

移植QT Library的方法:

如果要移植编译的上述编译生成的QT Library,则将/usr/local/Qt-5.7.0整个目录打包成tar包,然后拷贝至其他Linux下面,配置环境变量就可以使用了。

步骤4、安装IDE:Qt Creator

相比Qt Library,Qt Creator的安装要简单的多,我们下载的bin文件是可执行文件,安装时会出现像在Windows下的界面,安装路径默认就可以了。使用终端cd到你刚刚存放Qt Creator的临时目录,修改bin文件的权限使其具有可执行的权限:

chmod 777 qt-creator-opensource-linux-x86_64-4.7.0-rc1.run

然后输入以下命令安装bin文件:

./qt-creator-opensource-linux-x86_64-4.7.0-rc1.run

就会出现仿windows系统的安装界面。如下图所示,一步步按照要求确认就可以完成安装流程了。

Linux平台QT开发环境搭建

Linux平台QT开发环境搭建

步骤5、设置环境变量

最后要设置一下环境变量。设置环境变量的目的是为了在任何目录下都可以使用Qt Library。

sudo gedit /etc/profile

然后会弹出一个编辑窗口,在末尾添加以下代码:

 export QTDIR=/usr/local/Qt-5.7.0 
export PATH=$QTDIR/bin: $PATH 
export LD_PLUGINS_PATH= $QTDIR/plugins: $LD_PLUGINS_PATH 
export LD_LIBRARY_PATH= $QTDIR/lib: $LD_LIBRARY_PATH

保存后退出,source /etc/profile 生效后,切到其他路径运行“qmake -v”,如果有QT版本信息输出,则说明配置OK。如下图所示:

Linux平台QT开发环境搭建

重启电脑后,打开终端在任意目录下输入qmake,如果能出现正确信息,则表明环境变量已经配置成功。

步骤6、开始体验

启动IDE:

到此为止,Qt已经安装完毕,在终端里输入Qt Creator命令,或者在dash主页中搜索Qt Creator并启动它,或者将安装目录bin下的qtcreator 创建链接到Ubuntu桌面,双击该图标即可启动。

最后运行一个demo测试一下吧。

Linux平台QT开发环境搭建

查看QT开发环境搭建结果:

QT Library + Qt Creator环境搭建好之后,就可以直接通过IDE开发QT应用程序了。搭建好后,Qt Creator中Build Kits有编译器和Qt库版本,只有这样才能正常编译。如下:

Linux平台QT开发环境搭建

Demo实例:

基于搭建好的环境,开发的Demo程序,运行效果如下:

Linux平台QT开发环境搭建

二、参考文章

Qt for Linux/X11 - Building from Source

http://doc.qt.io/qt-5/linux-building.html 【QT官方编译源码指南】

Qt Configure Options

http://doc.qt.io/qt-5/configure-options.html

三、踩坑记录

问题1:The test for linking against libxcb and support libraries failed!

或者QT IDE无法运行时且提示:This application failed to start because it could not find or load the Qt platform plugin “xcb”

问题描述:

checking for xcb-syslibs… no.

The test for linking against libxcb and support libraries failed!

You might need to install dependency packages, or pass -qt-xcb.

See src/plugins/platforms/xcb/README.

解决方案:

sudo apt-get install libxcb*

问题2: configure时出现“gstreamer-1.0 development package not found” 和“gstreamer-audio-0.10 development package not found”

g++ -Wl,-O1 -o alsa alsatest.o -lasound

alsa enabled.

checking for GStreamer 1.0…

Project ERROR: gstreamer-1.0 development package not found

GStreamer 1.0 disabled.

checking for GStreamer 0.10…

Project ERROR: gstreamer-audio-0.10 development package not found

GStreamer 0.10 disabled.

Done running configuration tests.

解决方案:

sudo apt-get install gstreamer1.0* 【安装过程中需要另外安装很多依赖库】

sudo apt-get installlibgstreamer-plugins-base1.0-dev

问题3:Make编译时出错导致编译终止,具体出错记录如下:

make[2]: *** [sub-quick-make_first] Error 2

make[1]: *** [sub-examples-make_first] Error 2

。。。

截图如下:

Linux平台QT开发环境搭建

原因:

前面configure时找不到GStreamer 相关包,导致编译Qt Multimedia失败。

编译时缺少一些库,导致整个编译过程失败;

解决过程:

第1步:安装X11相关依赖的库

sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev

sudo apt-get install libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev

参考 Qt for X11 Requirements

http://doc.qt.io/qt-5/linux-requirements.html

第2步:解决问题2中gstreamer-1.0和gstreamer-audio-0.10开发包找不到的问题,保证“GStreamer 1.0 enabled”

经过上述2步的操作后,make最终成功了。make成功结果如下图所示:

Linux平台QT开发环境搭建


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据结构

数据结构

严蔚敏、吴伟民 / 清华大学出版社 / 2007-3-1 / 30.0

《数据结构》(C语言版)是为“数据结构”课程编写的教材,也可作为学习数据结构及其算法的C程序设计的参数教材。 本书的前半部分从抽象数据类型的角度讨论各种基本类型的数据结构及其应用;后半部分主要讨论查找和排序的各种实现方法及其综合分析比较。其内容和章节编排1992年4月出版的《数据结构》(第二版)基本一致,但在本书中更突出了抽象数据类型的概念。全书采用类C语言作为数据结构和算法的描述语言。 ......一起来看看 《数据结构》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具