2010-08-04 45 views
1

我从VS 2008的源代码编译了Qt 4.6.2。现在我想在调试我的应用程序时能够进入Qt源代码。我如何让VS获取框架资源?Visual Studio加载用于调试的Qt源代码

我忘了提及qt是静态构建的,我没有在任何地方找到任何.pdb文件。我相信所有必要的数据应该包含在debug .lib文件中?

+0

它应该自动地这样做,假设你仍然有源代码在你编译它的地方。 – leppie 2010-08-04 11:41:36

+0

即使您已经编译了静态的.lib,也需要使用pdb来调试库。 – tibur 2010-08-04 12:37:24

回答

1

你编译Qt的调试版吗?为此,您需要为configure步骤提供-debug或-debug-and-release参数。我相信,即使是静态版本,你也会得到pdb文件。

+0

我有释放和调试库,但没有.pdb文件。我认为Qt是使用-debug-and-release配置的,因为它是默认选项。 – 2010-08-04 12:25:41

+0

你用nmake编译过吗? – tibur 2010-08-04 12:36:18

+0

好吧,我实际上使用了一个名为jom的nmake的克隆来使用我的机器的所有四个核心:http://labs.trolltech.com/blogs/2009/03/27/speeding-up-visual-c-qt-builds/ – 2010-08-04 12:47:03

0

确保您的Qt程序集的.pdb文件位于您的bin目录中,并与.dll一起,您应该能够进入源代码。

+0

Qt是静态构建的,没有.pdb文件,因为没有程序集。 – 2010-08-04 11:48:40

+0

啊,这是一个问题:) – 2010-08-04 12:03:19

+0

@ak。请注意,.pdb文件必须在-debug或-debug-release下生成,但您应该记住,通过调用nmake clean清除Qt dir会删除所有.pdb文件。 – 2011-11-09 16:32:44

1

从你的问题,

我相信,所有必要的数据 应该包含在调试的.lib文件 ?

根本不需要。有不应该是与Qt关联的任何dll或库文件,因为您有源文件本身。

例如说您想要穿过QWidget

所以在cpp文件,你会使用像,

QWidget *trialWidget = new QWidget(); 

现在你要做的是什么,你必须包括header fileQWidgetqwidget.h我猜)和cpp文件QWidget (在这种情况下为qwidget.cpp)。

记下,所有可能需要qwidget.h其他类别也应包括。例如qobject.h代表QObject

这样你源代码本身替换DLL和库,让您可以进入在相应cpp文件可用Qt代码。

希望它有帮助..

+0

的。vcproj项目文件是由'qmake -tp vc'命令生成的,并且它没有引用任何框架资源,每次重新生成项目时都会引用我需要的所有资源是非常痛苦的......我认为应该有一个更容易解决。 – 2010-08-04 12:28:05

相关问题