我不认为有简单的步骤可循,这就是为什么外接存在,做所有的痛苦的任务。但是,它不应该太困难,只需要很长时间和繁琐的维护。
基本上有两套工作要做,设置你的项目文件,并设置所有文件的所有自定义生成步骤。
让我们从项目文件(vcproj)开始。我将假设我们将把所有生成的文件放在一个名为“GeneratedFiles”的目录中,该目录位于与.vcproj文件相同的目录中。
当您的项目打开属性页面并设置以下设置。
调试/环境:
PATH = $(QTDIR)\ BIN;“$(QTDIR)\ BIN; $(PATH)
C/C++ /普通/附加包含目录:
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库。
而这几乎是它的项目文件。其中大部分主要取决于您使用的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美元购买专业版,只是为了避免这一切。
来源
2011-11-10 23:42:14
Liz
哇,非常感谢所有这一切,我还没有设法找到所有的信息。尽管如此,这意味着它不值得使用QtSDK,除非你拥有带插件的完整Visual Studio。这是没有太多的工作! – oggmonster