QT错误集锦

在Window10安装过程中,千万不要联网。
在Window10安装过程中,千万不要联网。
在Window10安装过程中,千万不要联网。

因为一旦联网,它就会强迫你使用microsoft的帐号登录系统。虽然是可以在登录后,再注销帐号,但可能会导致个人目录与登录帐号不一致。
只有拒绝联网后,才会出现创建脱机登录帐号,也即本地帐号。等使用本地帐号登录系统后,才配置网络。
—————————
Qt4.8.7+Qt5.5.1+VS2010,可以同时支持Qt4/Qt5的开发。
如果有引用到c99的项目代码编译,需要使用vs2013才支持。
———————————–
QT安装包目录:
http://download.qt.io/official_releases
如果上述目录找不到安装包,可能是安装包版本太旧了,此时可以在以下目录下再找,通常情况下,它会归档在以下目录。
http://download.qt.io/new_archive/qt【Qt5.8.0是VS2013的最后一个支持版本,但Qt5.6.x是支持XP系统部署的最后一个版本,其VS2015之后的运行时库较大,对XP支持比较好的,还是VS2010~2013】
在vs2013环境中,编译XP的支持版本,需要开启v120-xp的工具集,具体如启方式如下:

命令行中如下:
cmake -DCMAKE_GENERATOR_TOOLSET=v120_xp ../woterm && cmake –build . –config Release
在CMakeFiles.txt中编译可执行文件是如下这样:
set(CMAKE_EXE_LINKER_FLAGS “${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,5.01”) #Win32程序
或
set(CMAKE_EXE_LINKER_FLAGS “${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE,5.01”) #Console程序。

VC相关的运行时库
http://download.qt.io/development_releases/prebuilt/vcredist/

————————————————————————————————————–
===============故障集合===================
Android SDK启动提示:Failed to load module “canberra-gtk-module”
sudo apt-get install libcanberra-gtk-module
==========================================
因为跨平台的因素,发现不同版本在Linux和MacOSX是存在差异的,而在Linux和Mac中,它是不带源码映射,故无法直接调试。
在跨平台中,发现目前各个系统引用到的版本是5.9.x,而只有5.9.8是包含的PDB调试文件。故只能直接使用它了。
http://download.qt.io/official_releases/qt/5.9/5.9.8/
5.9.8的Linux版本存在启动故障,且很难克服,此外该版本是需要用Qt帐号安装的。
5.9.3是当前验证的全平台问题,较容易解决的版本,可能是因为多个系统默认已经支持5.9.3的安装如yum和apt。
Linux的符号官网不提供,需要自行编译开发版本:./configure -developer-build -nomake tests -nomake examples

==================================
从5.12版本后,官网不再提供PDB文件下载了,如果想直接调试进Qt核心文件,则需要自已编译了,但编译过程也是让人痛苦的。
所以想不痛苦的话,就只能用5.11版本以下了。

将PDF文件解压至Qt目录下,并在QtCreator中按如下配置

此时是应该可以调试源码的,如果仍然不行,则把工程的原来相关临时目录彻底删除及重新创建工程,应该可以了。
如果仍不行,则可以再把相关映射后的目标文件直接拖进工程中,进行调试。如下图

——————————————
Linux环境下,调试Qt源码如下:
首先是找出原Qt的代码编译目录。
随便创建一个工程,并且进行调试状态。调出【Debugger Log】的目录,然后找fullname的文件提示如下图。
【/home/qt/work/qt】


—————————————-
ubuntu:
报错When executing step “Make”
sudo apt-get install build-essential
————————-
Linux环境下,如下报如下错:
cannot find -lGL
collect2:error:ld returned 1 exit status
则需要安装

sudo yum install mesa-libGL-devel mesa-libGLU-devel #GL核心库。Mesa 3D是一个在MIT许可证下开放源代码的三维计算机图形库,以开源形式实现了OpenGL的应用程序接口。
sudo yum install freeglut-devel #GL工具类

如果是Ubuntu16.04.6则是无法直接安装GL库的,按以下方式可解决:

方法一:apt-get install libgl1-mesa-dev
方法二:abc@ubuntu:~$ find /usr -name libGL*
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.13.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1
/usr/lib/x86_64-linux-gnu/libhybris-egl/libGLESv2.so.2
/usr/lib/x86_64-linux-gnu/libhybris-egl/libGLESv2.so.2.0.0
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.13
/usr/lib/x86_64-linux-gnu/libGLEW.so.1.13
/usr/lib/x86_64-linux-gnu/libGLEWmx.so.1.13.0
/usr/lib/x86_64-linux-gnu/libGLU.so.1
/usr/lib/libGL.so
abc@ubuntu:~$ sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
然后问题就解决了。

亦可尝试

1、缺少头文件
error: GL/gl.h: No such file or directory
解决方式:sudo apt-get install mesa-common-dev
 
2、编译出现如下错误提示:
/usr/bin/ld: cannot find -lGL
解决方式:sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev

3.提示以下错误:

/home/abc/Qt5.9.8/Tools/QtCreator/lib/Qt/plugins/platforms/../../lib/libQt5XcbQpa.so.5: undefined symbol: FT_Get_Font_Format
yum install freetype-devel

——-
在window中,使用qtcreator调试程序时,报如下错误:
Unable to create a debugging engine.
这是因为安装windowsSDK时,没有选择debuging tools for window选项,导致的。
特别是通过“Visual Studio Installer”安装工具安装时,因为采用了默认的方式,导致该选项是没有被选中。故需要重新安装相关相应SDK。
解决问题的方法有如下两个:
第一种,不一定有效,原因是相应选项,有可能没有下载到本地仓库。



没有修改安装目录时,其目录应该是在:C:\ProgramData\Microsoft\VisualStudio\Packages中。
第二种,下载完整的SDK离线安装包。
在百度中搜索:“windows sdk”关键字,然后到其官网下载离线ISO包,进行安装。
安装成功后,可以搜索到cdb.exe执行文件

检查一下Qtcreator是否能自动检测调试工具:

重新配置调试器

———–