2

我需要向使用 QT Visual-Studio-add-in 创建的 Visual Studio 项目添加新配置(除调试和发布之外)。

问题是 moc 文件不会自动添加到项目中。

QT Visual-Studio-add-in在哪里存储了基于现有头文件添加moc_file的配置规则?

如果我生成像 Release_Special 这样的新配置,则在包含文件的项目中应该有一个新的过滤器 Release_Special

moc_Test1.cpp moc_Test2.cpp

具有正确的排除规则。

我正在使用 VS2010 和 qt 4.8.3。

谢谢你,最好的问候MS

4

1 回答 1

3

花了一段时间,但我设法弄清楚了。

  1. 您需要在不丢失任何 Qt 插件自定义添加的东西的情况下创建新配置。打开配置管理器并创建配置,但请务必在“从...复制设置”下拉列表中选择“调试”或“发布”。假设您将新配置命名为“Debug-foo”,并使用了预先存在的 Debug 配置中的设置。
  2. 构建项目。所有必要的文件都将被 moc'd 并且输出将出现在 GeneratedFiles\Debug-foo 目录中(它将自动创建)。然后构建将尝试处理来自 Debug 配置的 moc 文件,这显然不是我们想要的,因此一旦构建完成 moc'ing,您就可以终止它。
  3. 在解决方案资源管理器中的 Generated Files 下添加一个名为“Debug-foo”的新过滤器,然后 Add->Existing item to that,从 GeneratedFiles\Debug-foo 中选择所有 moc_(...).cpp 文件刚刚创建.
  4. 最后但同样重要的是,选择 Generated Files\Debug 过滤器中的所有文件,选择 Properties 并将“Excluded from build”设置为 true,否则构建将包含来自 Debug 和 Debug-foo 的 moc_ 文件。

希望这将在某些新版本的加载项中得到修复。也许已经是了,谁知道呢(我在插件 1.1.10 中遇到了这个问题)。

至于您关于 moc_ 生成规则的存储位置的部分问题;将配置创建为现有配置的副本可以省去添加自定义构建指令以为每个需要它的文件调用 moc 的麻烦。这些存储在单个头文件的属性中,如果您想检查它们,则需要在“自定义构建工具”下进行 moc'ing。

于 2013-01-31T21:18:52.007 回答