Visual studio 2015 Qt5 moc未生成文件 我用VS2015为玛雅制作了一个C++插件,直到现在,我没有使用QT5,但是现在我需要Qt5.GoGET和QQueNUM功能,所以我开始设置我的VS来包括QT,所有的东西都在编译,我在图书馆里没有任何使用QT类的问题,但当我尝试使用qt的任何属性系统(Qu GADGET、Qu ENUM等)时,moc似乎不会生成任何文件,我使用的是qt VS tools 2

Visual studio 2015 Qt5 moc未生成文件 我用VS2015为玛雅制作了一个C++插件,直到现在,我没有使用QT5,但是现在我需要Qt5.GoGET和QQueNUM功能,所以我开始设置我的VS来包括QT,所有的东西都在编译,我在图书馆里没有任何使用QT类的问题,但当我尝试使用qt的任何属性系统(Qu GADGET、Qu ENUM等)时,moc似乎不会生成任何文件,我使用的是qt VS tools 2,visual-studio-2015,qt5,moc,Visual Studio 2015,Qt5,Moc,我在某个地方读到过,我应该将我的项目转换为Qt项目,但是关于如何转换的解释非常不清楚,我也不确定我是否能够为我当前的项目转换,因为我的项目有大量的文件 有没有办法将moc设置为运行所有my.h并自动包含生成的文件 提前感谢。可以使用本页提供的帮助解决我的问题: 我们在项目中创建一个VS属性文件(.props),在ClCompile之前使用自定义目标加载所有.hpp文件并在其上执行moc.exe 为我的5.6.1项目修改的.props: <?xml version="1.0" encodi

我在某个地方读到过,我应该将我的项目转换为Qt项目,但是关于如何转换的解释非常不清楚,我也不确定我是否能够为我当前的项目转换,因为我的项目有大量的文件

有没有办法将moc设置为运行所有my.h并自动包含生成的文件


提前感谢。

可以使用本页提供的帮助解决我的问题:

我们在项目中创建一个VS属性文件(.props),在ClCompile之前使用自定义目标加载所有.hpp文件并在其上执行moc.exe

为我的5.6.1项目修改的.props:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <SourceDir>$(ProjectDir)</SourceDir>
    <CppDir>$(SourceDir)/</CppDir>
    <GenDir>$(SourceDir)/Generated</GenDir>
  </PropertyGroup>

  <PropertyGroup>
    <QtDir>D:\Qt\Qt5.6.1\5.6\msvc2015</QtDir>
    <MocExt>hpp</MocExt>
    <Moc>$(QtDir)/bin/moc.exe</Moc>
  </PropertyGroup>

  <Target Inputs="@(QtIncludes)" 
          Name="Moc" 
          BeforeTargets="ClCompile" 
          Outputs="@(QtIncludes->'$(GenDir)/moc_%(Filename).cpp')">
    <Exec Command = "$(Moc) &quot;%(QtIncludes.identity)&quot; -nw -o $(GenDir)/moc_%(Filename).cpp $(MocFlags)"/>
  </Target>
  <Target Name="CreateDirectories" BeforeTargets="Moc">
    <MakeDir
        Directories="$(GenDir)"/>
  </Target>

  <Target Inputs="@(CopyToOutput)"
          Name="CopytoOut"
          Outputs="@(CopyToOutput->'%(DestinationFolder)/%(RecursiveDir)%(Filename)%(Extension)')"
          AfterTargets="Link">
  </Target>
  <ItemDefinitionGroup />
  <ItemGroup>
    <QtIncludes Include="$(ProjectDir)/**/*.$(MocExt)"/>
  </ItemGroup>
</Project>

$(ProjectDir)
$(SourceDir)/
$(SourceDir)/已生成
D:\Qt\Qt5.6.1\5.6\msvc2015
水电站
$(QtDir)/bin/moc.exe