0

我在每个使用 Q_OBJECT 的头文件的自定义构建属性中都有以下内容:

Command Line: $(THIRDPARTY_DIR)\qt\4.7.0\win32-vc10\bin\moc.exe $(InputFileName) -o moc\$(ConfigurationName)\moc_$(InputName).cpp
Description: ################### moc'ing $(InputFileName)
Outputs: moc\$(ConfigurationName)\moc_$(InputName).cpp

这会生成必要的 moc 文件。我现在想要求 Visual Studio 也将它们编译并链接到我的其他源文件。目前我正在使用 #include "moc\{Release OR Debug}\moc_Whatever.cpp"#任何文件中的语句来强制编译和链接。显然,我必须根据调试或发布版本不断更改我的#include(由于某些原因,我不能在上述 moc 文件生成期间丢弃 $(ConfiguarationName) )。另外,我不喜欢#include仅出于编译和链接的目的而在源文件中编写此内容的想法。

属性中是否有任何构建步骤,我可以提及将来将生成哪些文件并在它们可用时编译和链接它们(VS2005)?

(我现在不能使用 QtPlugin)

4

1 回答 1

0

您只需将这些文件添加到项目中,我的项目结构通常如下所示(在 Visual Studio 解决方案资源管理器中):

  Solution
    |
    +- Project1
          |
          +- Generated Files
          +- Header Files
          +- Source Files

在 Generated Files 中,我包含了对 Debug 和 Release moc_xxx.cpp 和 qrc_xxx.cpp 文件的引用。对于 Debug 文件,您需要将 Release 引用的“Exclude from Build”设置为 true,反之亦然。

这与插件的作用几乎相同。

于 2012-08-14T12:06:18.470 回答