我從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