2010-08-04 69 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