【问题标题】:Moved QT project, Rename folders and project name, Moc'ing return "Missing value after '-I'"移动 QT 项目,重命名文件夹和项目名称,Moc'ing 返回“'-I' 后缺少值”
【发布时间】:2019-10-12 05:25:08
【问题描述】:

我在 Visual Studio 2017 中有一个可用的 Qt 5.11 项目。

当我将项目移动到另一个文件夹时,重命名项目名称并更改一些包含文件夹名称并尝试构建我得到的项目...

1>Moc'ing includes\ThreadChecker.h...
1>Missing value after '-I'.

…在我所有的 Moc-able 类上,根本没有生成 moc-files,但是创建了 Generated Files-folder,并显示了 Visual Studio 中的 moc-files,但没有生成物理文件,所以我无法构建项目,因为没有文件。

我尝试在“-I”之后搜索缺失值,但我看不到有人收到该错误。

有人知道这个错误吗?

【问题讨论】:

  • 由于-I 用于包含,很可能您在某处有一个空的包含。我建议打开编译器详细程度(如此处所述 - blogs.msdn.microsoft.com/saraford/2008/10/07/…)或以其他方式检查正在调用的实际命令行。然后,当您验证确实存在空的包含设置时,您可以开始检查项目配置以找出平淡无奇的包含值。
  • 我有这个。这是因为自定义构建命令末尾的“-I$(NOINHERIT)”。
  • 嗨,保罗,我遇到了同样的问题。感谢您的回答,我打开了项目文件并手动删除了“-I$(NOINHERIT)”。现在一切正常。

标签: c++ visual-studio qt build qt5


【解决方案1】:

当我遇到此问题时,我编辑项目文件 (*.VCPROJ) 将“-I$(NOINHERIT)”替换为“-I$(NOINHERIT)\.”。

<CustomBuild Include="\source.h">
  <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
  <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing %(Identity)...</Message>
  <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
  <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">[...]"-I$(NOINHERIT)\."</Command>

我还不能确切地解释这个文件为什么以及什么时候被破坏,但是当你查看正在工作的 Moc'ing 时,它带有尾随的“\”。字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2018-07-05
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多