2011-11-10 115 views
1

我剛剛下載並安裝了最新的Qt SDK(4.7.4)和最新版本的Microsoft Visual C++ 2010 Express。Qt 4.7.4和Microsoft Visual C++ 2010 Express

我希望能夠使用Visual Studio中的QtSDK構建應用程序。我該如何着手設置?我已經找到幾個指南的頁面,但找不到一個似乎工作(所有的路徑都改變了,因爲一些指南是舊的,不能使用Qt Visual Studio插件,因爲我有Express等等)。

我真的很感激一些步驟來完成這件事。我已經使用Visual Studio 2008專業1年,Qt Creator專業4個月,但我仍然無法解決這個問題!

感謝

回答

2

我不認爲有簡單的步驟可循,這就是爲什麼外接存在,做所有的痛苦的任務。但是,它不應該太困難,只需要很長時間和繁瑣的維護。

基本上有兩套工作要做,設置你的項目文件,並設置所有文件的所有自定義生成步驟。

讓我們從項目文件(vcproj)開始。我將假設我們將把所有生成的文件放在一個名爲「GeneratedFiles」的目錄中,該目錄位於與.vcproj文件相同的目錄中。

當您的項目打開屬性頁面並設置以下設置。

調試/環境:

PATH = $(QTDIR)\ BIN;「$(QTDIR)\ BIN; $(PATH)

C/C++ /普通/附加包含目錄:

  • 。\ GeneratedFiles
  • $(QTDIR)\包括
  • 。\ GeneratedFiles \ $(ConfigurationName)
  • $(QTDIR )\包括\ QtCore
  • $(QTDIR)\包括\ QtGui

    ,您將需要更多的包括在這裏的路徑,如果你是依賴不僅僅是QtCore和QtGui更多,但我只是把那些過爲簡單起見。

C/C++ /預處理器:

  • QT_LARGEFILE_SUPPORT
  • QT_THREAD_SUPPORT
  • QT_PLUGIN,如果你想小部件出口到
  • QT_DLL/QT_NODLL取決於是否採用共享式設計QDESIGNER_EXPORT_WIDGETS或靜態Qt庫
  • QT_NO_DEBUG/QT_DEBUG其中一個或另一個取決於w通過釋放或調試的Qt
  • QT_CORE_LIB論是你需要下列內容之一的Qt的每個DLL,你是依賴於
  • QT_GUI_LIB

鏈接器/一般/附加庫的依賴:

加$(QTDIR)\ lib添加到您已有的任何列表中。

鏈接器/輸入/附加依賴:

添加任何你需要的Qt庫。

  • QtCore.lib
  • QtGui.lib

而這幾乎是它的項目文件。其中大部分主要取決於您使用的Qt的哪些部分。

現在,到了困難的部分。配置所有文件以正確構建。首先要做的是設置過濾器來組織你的項目。除了正常的包括和源過濾器,你將需要:

  • 表單文件 - 這是所有的.ui文件應該是
  • 生成的文件 - 這包含2個過濾器調試和發佈
  • 資源文件 - 這是任何.qrc和圖像文件應該在的地方。

現在開始添加你的文件到項目中。您現在不會有任何生成的文件要添加,只是您的常規源文件,包括ui和qrc文件。

然後添加您的自定義生成步驟。需要自定義構建步驟的文件都是您的ui和qrc文件,以及包含Q_OBJECT宏的所有.h文件。對於其中的每一個打開屬性頁面並選擇「自定義生成步驟/常規」。

對於UI文件:

  • 命令行: 「\ GeneratedFiles \ UI _ $(InputName).H」 「$(QTDIR)\ BIN \ uic.exe」 -o 「$(InputPath) 「
  • 描述:Uic'ing $(InputFileName)...
  • 輸出:」。\ GeneratedFiles \ ui _ $(InputName)「。H」
  • 附加依賴​​:$(QTDIR)\ BIN \ uic.exe

對於QRC文件:

  • 命令行: 「$(QTDIR)\ BIN \ rcc.exe」 - 命名 「$(InputName)」 - 無 - 壓縮 「$(InputPath)」 -o \ GeneratedFiles \ QRC _ $(InputName)的.cpp
  • 說明:Rcc'ing $(查找inputfilename)...
  • 輸出:。\ GeneratedFiles \ qrc _ $(InputName).cpp
  • 其他依賴關係:$(InputPath),然後是qrc文件中所有 圖像的列表。

對於.h文件:

這是很難的,因爲調試不同的命令行,然後釋放,以及32位和64位,因爲它是依賴於您的項目設置。我會告訴你我的一件事,但最好的辦法是根據你的C/C++命令行在記事本中建立一個記事本。

  • 命令行: 「$(QTDIR)\ BIN \ moc.exe」 -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_PLUGIN -DQDESIGNER_EXPORT_WIDGETS -DQT_CORE_LIB -DQT_GUI_LIB -DWIN64 -D_DEBUG -D_VC80_UPGRADE = 0x0710 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_WINDLL 「-I。\ GeneratedFiles」「-I $(QTDIR)\ include」「-I。\ GeneratedFiles \ $(ConfigurationName)」。 (QTDIR)\ include(包括\ QtIR)\ include(包括\ QtIR)\ include(包括\ QtDIR)\包含\ QtDesigner「-I $(QTDIR)\ include \ QtCore」 「$(InputPath)」 -o
  • 說明 「\ GeneratedFiles \ $(ConfigurationName)\ MOC _ $(InputName)的.cpp」:Moc'ing $(查找inputfilename)...
  • 輸出:」 \ GeneratedFiles \ $(ConfigurationName)\ MOC _ $(InputName)的.cpp」
  • 附加依賴​​: 「$(QTDIR)\ BIN \ moc.exe」; $(InputPath)

一旦你設置的所有自定義構建步驟,實際上只剩下一件事,添加所有生成的f iles到項目。但是,到目前爲止,它們不存在於磁盤上,因此請測試您的自定義構建步驟並嘗試構建項目。它不會完成,但沒關係。主要的是它應該生成你需要的所有文件。請記住,生成的moc _ *。cpp文件需要爲調試和發佈生成,因此您必須執行兩次。

添加所有qrc_.cpp和ui_.h文件直接下在你的項目中的「生成的文件」過濾器。然後將「生成的文件\調試」過濾器下的所有Debug \ moc_.cpp文件以及您的「生成的文件\版本」過濾器下的Release \ moc_.cpp文件添加。

最後,在你的「生成的文件\調試」過濾一切都應該從發行版本排除在外,並在「生成的文件\發佈」過濾一切都應該從調試版本被排除在外。

而我認爲就是這樣。我從未說過這不會是痛苦的。真正的挑戰是記住在創建新文件時添加自定義構建步驟等。完成這一切後,天堂禁止你需要更改任何項目設置。

它幾乎讓你想要掏出700美元購買專業版,只是爲了避免這一切。

+1

哇,非常感謝所有這一切,我還沒有設法找到所有的信息。儘管如此,這意味着它不值得使用QtSDK,除非你擁有帶插件的完整Visual Studio。這是沒有太多的工作! – oggmonster

相關問題