下载附件:
用于QT开发和QT应用程序运行的QT库:
在Linux X64平台上运行的Qt Creator开发和应用程序使用的Qt库:
用于运行ARM64平台应用程序的Qt库:
QT库配置说明:
直接下载并使用我提供的编译好的Qt库。 需要正确配置才能正常使用。
可能出现的问题:
问题1:在Ubuntu下将我编译的QT库移至QT Creator时,QT Creator中可能会提示“Qt版本未正确安装,请运行make install”的问题。 提示说明Qt尚未正确安装qt源码编译linux,请运行make install。 这个问题是一个比较常见的问题。
出现这个问题的原因是:Qt安装编译时生成qmake.exe,里面嵌入了一些与Qt相关的路径。 如果直接复制使用的话,自己的路径结构和原来的不一样,无法正常使用Qt库。 提示Qt版本未正确安装,请运行make install Qt未正确安装,请运行make install。
由于qmake.exe中嵌入了路径信息,所以应该无法通过更改配置来解决这个问题。 所以有以下几种方案来解决这个问题:
解决方案一:保持库的安装路径和我编译的一致。 路径为:/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开始。 (修改之前别忘了先做好备份)使用十六进制编译器,打开qmake.exe文件qt源码编译linux,搜索71 74 5f 70 72 66 78 70 61 74 68 3d(qt_prfxpath = ***),我用IDA工具查看我为Linux X64平台编译的Qt-5.7.0库。 结果如下图:
选项2参考
问题2:通过方案1解决问题1后,构建QT项目时仍然可能出现“error:cannotfind-lGL”
原因:依赖库没有安装。
解决方案:重新执行 sudo apt-get install libgl1-mesa-dev 安装一系列依赖库。
最新的新项目需要linux下的QT开发,包括QCamera的使用。
我下载了Qt最新版本的源代码。 同时参考了一些旧资料,回顾了整个安装和使用的过程,包括安装过程中的踩步过程,记录下来,以供以后参考和分享。
1、环境搭建流程
步骤0.开发环境
首先介绍一下我的开发环境:
物理机:windows 10 64位;
虚拟机:Virtualbox 5.20;
虚拟机:Ubuntu 16.04 64位;
步骤1.准备
在Ubuntu系统中,为了保证Qt的正常运行,必须安装一些必要的工具,包括g++编译器,以及一些必要的库。 可以使用以下命令安装它:
须藤 apt-get 安装 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的具体下载地址如下:
qt库源码包:
qt 创建者:
步骤 3. 编译并安装 Qt 库
下载完Qt Library的源码后,随意解压到一个临时目录,然后单步进入该目录进行配置编译。 具体步骤如下:
1. 解压
tar xvJf qt-everywhere-opensource-src-5.7.0.tar.xz
2. 配置
cd qt-everywhere-opensource-src-5.7.0
。/配置
然后终端会出现让你选择商业版本或者开源版本,输入字母o选择开源版本。 然后会有一个合同让你接受,只要输入yes就可以了。 系统将开始配置整个项目,稍等片刻即可。
3. 编译
配置完成后,终端会提示以下信息:
Qt 现在已配置为构建。 只需运行“make”即可。
一切构建完成后,您必须运行“make install”。
Qt 将安装到 /usr/local/Qt-5.7.0
要重新配置,请运行“make confclean”和“configure”。
此时,按要求输入make,开始编译生成Qt库,同时编译所有demo程序。 这个过程比较长,耐心等待即可。
在我的笔记本电脑上编译大约花费了 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命令,如果出现正确的版本信息,则说明安装成功。
输入./qmake -v命令,如果出现正确的版本信息:
如何移植QT库:
如果要移植编译上面编译生成的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系统的安装界面。如下图所示,一步步按照要求确认就可以完成安装流程了。
步骤5.设置环境变量
最后,设置环境变量。 设置环境变量的目的是为了在任意目录下使用Qt Library。
sudo gedit /etc/profile
然后会弹出一个编辑窗口,在最后添加以下代码:
导出 QTDIR=/usr/local/Qt-5.7.0
导出 PATH=$QTDIR/bin: $PATH
导出 LD_PLUGINS_PATH= $QTDIR/插件: $LD_PLUGINS_PATH
导出 LD_LIBRARY_PATH= $QTDIR/lib: $LD_LIBRARY_PATH
保存后退出。 source /etc/profile生效后,切换到其他路径,运行“qmake -v”。 如果输出QT版本信息,说明配置成功。 如下所示:
重启笔记本后,打开终端,在任意目录下输入qmake。 如果出现正确信息,则说明环境变量配置成功。
步骤 6. 开始体验
启动IDE:
至此,Qt已经安装完毕。 在终端输入Qt Creator命令,或者在dash主页搜索Qt Creator并启动,或者将安装目录bin下的qtcreator链接到Ubuntu桌面,双击图标启动。
最后运行一个demo来测试一下。
查看QT开发环境搭建结果:
QT Library + Qt Creator环境搭建完成后,就可以直接通过IDE开发QT应用程序了。 构建完成后,Qt Creator 中的构建套件具有编译器和 Qt 库版本。 这样才能正常编译。 如下:
演示示例:
基于搭建的环境,开发的Demo程序效果如下:
2、参考文章
Qt for Linux/X11 - 从源代码构建
【QT官方编译源码手册】
Qt 配置选项
3、踩踏记录
问题 1:libxcb 和支持库的链接测试失败!
或者当QT IDE运行困难并提示:此应用程序无法启动,因为它无法找到或加载Qt平台插件“xcb”
问题描述:
检查 xcb-syslibs…没有。
针对 libxcb 和支持库的链接测试失败!
您可能需要安装依赖包,或传递-qt-xcb。
请参阅 src/plugins/platforms/xcb/README。
解决方案:
sudo apt-get 安装 libxcb*
**参考**
问题2:configure时出现“gstreamer-1.0开发包未找到”和“gstreamer-audio-0.10开发包未找到”
g++ -Wl,-O1 -o alsa alsatest.o -lasound
已启用 alsa。
检查 GStreamer 1.0...
项目错误:找不到 gstreamer-1.0 开发包
GStreamer 1.0 已禁用。
检查 GStreamer 0.10...
项目错误:找不到 gstreamer-audio-0.10 开发包
GStreamer 0.10 已禁用。
完成运行配置测试。
解决方案:
sudo apt-get install gstreamer1.0* 【安装过程中需要安装很多依赖库】
sudo apt-get install libgstreamer-plugins-base1.0-dev
问题3:Make编译时出错,导致编译停止。 具体错误记录如下:
make[2]: *** [sub-quick-make_first] 错误 2
make[1]: *** [子示例-make_first] 错误 2
。 。 。
截图如下:
原因:
之前的configure中找不到GStreamer相关包,导致Qt Multimedia编译失败。
编译时缺少一些库导致整个编译过程失败;
解决过程:
第一步:安装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-ut il0-dev
请参阅 Qt 了解 X11 要求
步骤2:解决问题2中找不到gstreamer-1.0和gstreamer-audio-0.10开发包的问题,并确保“GStreamer 1.0已启用”
经过以上2步,make终于成功了。 make成功的结果如下图所示: