我有一个使用Visual Studio Qt Add-in的Visual Studio Qt项目。外接程序会自动为.ui文件和每个包含Q_OBJECT声明类的头文件创建自定义构建工具规则,以分别运行UIC和MOC。
这一切都完美无缺,直到我为整个项目添加自定义构建工具规则。在此实例中,该规则特定于 Release 构建并调用代码签名,并在构建 之后设置为执行。使用此配置, Debug 构建工作正常,但 Release 不会自动执行MOC或UIC。我可以在项目浏览器中右键单击Q_OBJECT标题和.ui文件,并手动强制编译以获取所有必需的文件,并且它们是正确的MOC和UIC,然后可以构建,但是清理后重建或构建总是失败。
为什么为项目添加项目自定义构建规则似乎已禁止自定义构建工具规则关联.ui和Q_OBJECT标头?
答案 0 :(得分:4)
在自定义构建步骤中,设置"执行"到BuildGenerateSources。
通过添加行
在vcxproj文件中表示<CustomBuildAfterTargets Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">BuildGenerateSources</CustomBuildAfterTargets>
到<PropertyGroup>
块