Qt VS工具生成不正确的MOC命令

时间:2019-06-03 23:25:11

标签: qt

整个下午,我一直在努力寻找Visual Studio 2013中Qt VS Tools的问题。我正在尝试更新一个现有的.vcxproj文件,该文件使用了自行生成的机制来生成MOC,UIC等。档案,改用Qt VS工具机制。

我遇到的问题是针对包含Q_OBJECT宏的.h文件生成的MOC命令。示例行(为简洁起见,在此处减少):

  <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp"  "-I$(QTDIR)\include\QtGui" "-I$(NOINHERIT)"</Command>

问题在于NOINHERIT不存在,因此“ -I $(NOINHERIT)”被评估为没有任何值的“ -I”,并且MOC编译器抱怨并没有生成MOC文件。我已经尝试清理继承的路径,选中并取消选中“从父级或项目默认值继承”,有时我看到的唯一变化是它具有“ -I”而没有NOINHERIT宏。

完全重新开始一个新的.vcxproj文件,这似乎是我唯一的希望,但这比我要承担的任务要大得多,因为其中有很多我不愿创建它们之间的依赖关系再次。

我正在使用最新的Qt VS Tools,版本为2.3.2。有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:1)

%(AdditionalIncludeDirectories)处添加project->C/C++ -> General -> Additional Include Directories

%(AdditionalIncludeDirectories)是默认添加的,但是如果由于某些原因而被错误覆盖,那么我们将收到这样的错误。

正在XXXXXXX.h ...
“ -I”后缺少值。

答案 1 :(得分:0)

自然,发布后五分钟,我发现了问题。包含的属性文件具有以下内容:

  <AdditionalIncludeDirectories></AdditionalIncludeDirectories>

而不是这个,它解决了问题:

  <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

有趣的是,对于它的价值,这没有用:

  <AdditionalIncludeDirectories />