我从VS 2008的源代码编译了Qt 4.6.2。现在我想在调试我的应用程序时能够进入Qt源代码。我如何让VS获取框架资源?Visual Studio加载用于调试的Qt源代码
我忘了提及qt是静态构建的,我没有在任何地方找到任何.pdb文件。我相信所有必要的数据应该包含在debug .lib文件中?
我从VS 2008的源代码编译了Qt 4.6.2。现在我想在调试我的应用程序时能够进入Qt源代码。我如何让VS获取框架资源?Visual Studio加载用于调试的Qt源代码
我忘了提及qt是静态构建的,我没有在任何地方找到任何.pdb文件。我相信所有必要的数据应该包含在debug .lib文件中?
你编译Qt的调试版吗?为此,您需要为configure步骤提供-debug或-debug-and-release参数。我相信,即使是静态版本,你也会得到pdb文件。
我有释放和调试库,但没有.pdb文件。我认为Qt是使用-debug-and-release配置的,因为它是默认选项。 – 2010-08-04 12:25:41
你用nmake编译过吗? – tibur 2010-08-04 12:36:18
好吧,我实际上使用了一个名为jom的nmake的克隆来使用我的机器的所有四个核心:http://labs.trolltech.com/blogs/2009/03/27/speeding-up-visual-c-qt-builds/ – 2010-08-04 12:47:03
确保您的Qt程序集的.pdb
文件位于您的bin目录中,并与.dll
一起,您应该能够进入源代码。
Qt是静态构建的,没有.pdb文件,因为没有程序集。 – 2010-08-04 11:48:40
啊,这是一个问题:) – 2010-08-04 12:03:19
@ak。请注意,.pdb文件必须在-debug或-debug-release下生成,但您应该记住,通过调用nmake clean清除Qt dir会删除所有.pdb文件。 – 2011-11-09 16:32:44
从你的问题,
我相信,所有必要的数据 应该包含在调试的.lib文件 ?
根本不需要。有不应该是与Qt关联的任何dll或库文件,因为您有源文件本身。
例如说您想要穿过QWidget
。
所以在cpp
文件,你会使用像,
QWidget *trialWidget = new QWidget();
现在你要做的是什么,你必须包括header file
为QWidget
(qwidget.h
我猜)和cpp
文件QWidget
(在这种情况下为qwidget.cpp
)。
记下,所有可能需要在qwidget.h
其他类别也应包括。例如qobject.h
代表QObject
。
这样你与源代码本身替换DLL和库,让您可以进入在相应cpp
文件可用Qt
代码。
希望它有帮助..
的。vcproj项目文件是由'qmake -tp vc'命令生成的,并且它没有引用任何框架资源,每次重新生成项目时都会引用我需要的所有资源是非常痛苦的......我认为应该有一个更容易解决。 – 2010-08-04 12:28:05
它应该自动地这样做,假设你仍然有源代码在你编译它的地方。 – leppie 2010-08-04 11:41:36
即使您已经编译了静态的.lib,也需要使用pdb来调试库。 – tibur 2010-08-04 12:37:24