qt调试无法开始 求助

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt调试无法开始 求助相关的知识,希望对你有一定的参考价值。

1.首先在该链接处下载 Qt library和 Qt creater(http://qt-project.org/downloads),
我使用的 Qt library是qt-win-opensource-4.8.5-mingw.exe,
Qt creater是qt-creator-windows-opensource-2.7.2.exe;
安装QT之前,还需要下载MinGW-gcc,我使用的是MinGW-gcc440_1.zip;
http://ishare.iask.sina.com.cn/f/34637805.html这儿可以免费下载;
2.做好了所有准备后,我们开始安装;
(1)。在安装Qt之前,我们简单了解下MinGW。(http://baike.baidu.com/view/98554.htm)
MinGW是一个可以自由使用和自由发布的Windows特定头文件和使用GUN工具集导入库的集合,允许在GUN/Linux和我Windows平台生成本地的Windows程序而不需要第三方C运行时库。
我们在安装Qt之前,需要在系统中存放这个MinGW工具库。这里,我存放的位置是 D:\\Install software;(当然,你完全可以存放在其他地方,只要你自己记住位置就可以了),因为下面的安装过程需要用到这个库。
(2)。接下来,开始安装Qt library。直接双击exe文件就可以了,然后根据提示进行安装,这里我选择安装的位置是D:\\QT;安装过程中有个地方需要填入MinGW的位置,该位置就是上一步中MinGW存放的位置,我这里的位置是D:\\Install software\\mingw;然后很轻松就完成安装;
(3)。然后,为了以后能更方便的使用Qt,我们需要先编译一下。在开始菜单中,找到Qt by Digia v4.8.5 (MinGW OpenSource)这个文件夹,打开,里面会有Qt 4.8.5(Build Debug Libraries)的一个批处理文件,点击后会进入windows下的DOS界面,然后根据里面的提示,根据自己的选择来编译这个库。很简单,就2步吧。不过这个时间有点长,因为库比较大,我电脑比较慢,差不多编译了快4个小时,编译时就和linux下的命令行界面一样的,一行一行的指令往上飞。
(4)。编译完成后,我们需要配置系统环境变量。右键单击我的电脑,选择属性,进入高级系统设置,单击右下角的环境变量,在环境变量path中添加 ;D:\\QT\\bin;D:\\Install software\\mingw\\bin 然后再添加两个环境变量
QTDIR=D:\\QT(编译时的默认目录,这个可以随意设置,用来存放工程文件的);
QMAKESPEC=win32-g++;
到这里,windows下的Qt开发环境基本就配置好了。
下面,我们在D:\\QT的目录下创建一个project的文件夹,再在project中创建hello文件夹,再在hello文件夹中创建一个cpp文件,写入一下测试程序:
#include <QApplication> //包含QApplication头文件
#include <QPushButton> //包含QPushButton头文件
int main(int argc, char *argv[]) // 还是标准的main函数

QApplication app(argc, argv); // 构造应用,同MFC中的WinApp
QPushButton hello("Hello world!"); // 构造PushButton
hello.resize(100, 30); // 设置按钮大小
hello.show(); // 显示按钮
return app.exec(); // 执行应用,同MFC中的Run

然后打开开始菜单中的 Qt 4.8.5 Command Prompt ,通过cd 命令找到cpp所在的路径地址,再输入
qmake -project
make
最后,编译成功通过,会在hello文件夹下的release文件夹中生成一个。exe文件,双击执行即可。也可以在DOS下执行,进入文件夹目录,直接输入:hello.exe 即可;这里,我还列出了一些常用指令
dir 查看文件列表,同linux下的“ls”
cd 改变文件目录 “cd ”返回到上一层 “cd \\”到所在磁盘,一般为c:
del 删除一个文件
mkdir创建一个文件夹
rmdir 删除一个空文件夹
notepad xx.cpp 用记事本打开(如果没有则是创建)xx.cpp文件 也可以是。h文件
3.如果觉得使用命令行不习惯,那么就可以安装Qt creater,这是一个图形化的设计编译界面,直接使用EXE文件安装。安装完成后,打开软件,单击工具栏,单击选项按钮,进入下面的页面:
单击构建和运行(这是新版本,老版本是“Qt4”),就是上面这个页面,将Qt版本中的qmake路径手动设置为Qt安装路径中的bin文件夹下的qmake.exe文件即可(添加,确定);
这时你可以在creater中添加hello的项目,看看调试时候能够通过,能否正常运行,如果出现调试不通过,gbd异常中断,那么你还需要下载gdb。因为在之前的Qt Creator中,是以一个Qt SDK的整体来提供的,里面就包括了MinGW和调试器,而且也无需配置,现在的新版本都是分散安装的,所以就需要自己单独再找找了。网上的一个说法是2.5以上的版本必须使用7.2 IIRC版以上的GDB,需要需要自己单独下载,这里我找到两个下载地址。
参考技术A 这是需要支持python的GDB版本,如果不想换GDB的话,换个较低版本的Qt creator可以解决,我换了个3.0.1的qt creator就可以了

Qt无法调试Qvector

现象:技术分享图片

解决:

打开文件 $(VSDIR)Common7PackagesDebuggerautoexp.dat (VSDIR是本机Visual Studio的安装目录)
把定义QVector和QMap显示内容的语句改成以下语句

 

;------------------------------------------------------------------------------
; QVector, QStack
;------------------------------------------------------------------------------
QVector<*>|*::QVector<*>|QStack<*>|*::QStack<*>{
    preview
    (
        #if ($c.d->size <= 10) (
            #(
                "[", $c.d->size, "](",
                #array
                (
                    expr: (($T1*)((char*)($c.d)+ $c.d->offset))[$i],
                    size: $c.d->size
                ), ")"
            )
        ) #else (
            #(
                "[", $c.d->size, "](",
                #array
                (
                    expr: (($T1*)((char*)($c.d)+ $c.d->offset))[$i],
                    size: $c.d->size
                ), ", ...)"
            )
        )
    )
    children
    (
        #array
        (
            expr: (($T1*)((char*)($c.d)+ $c.d->offset))[$i],
            size: $c.d->size
        )
    )
}

;------------------------------------------------------------------------------
; QMap
;------------------------------------------------------------------------------
QMapNode<*,*>{
    preview
    (
        #(
            "(",
            $e.key,
            "; ",
            $e.value,
            ")"
        )
    )

    children
    (
        #(
            key: $e.key,
            value: $e.value
        )
    )
}
QMap<*>{
    children
    (
        #(
            raw data: [$c,!],
    			  #tree
					  (
							head: &($e.d->header),
							size: $e.d->size,
							left: left,
							right: right,
						) : ((QMapNode<$T1>*)&$e)
						
        )
    )

    preview
    (
        #(
            "[",
            $e.d->size,
            "](",
							  #tree
							  (
									head: &($e.d->header),
									size: $e.d->size,
									left: left,
									right: right,
								) : ((QMapNode<$T1>*)&$e),
            ")"
        )
    )
}

 

以上是关于qt调试无法开始 求助的主要内容,如果未能解决你的问题,请参考以下文章

求助,我在linux下安装的Qt5为啥用GDB调试器无法进入源码

Qt 调试崩溃/退出 python 并最终无法正确调试(例如,不在断点处停止)

Qt Creator 无法启动调试器

无法让 Qt Creator 调试在 Windows 10 上运行

VS中,出现这样的问题: 由于缺少调试目标,无法开始调试,请生成项目并重试,使其指向目标程序集的正确位置,

如何使用VS2012调试QT程序