2011-11-10 141 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

相关问题