QV5在MSVC2012上 - moc步骤很慢

时间:2017-02-10 04:55:16

标签: qt visual-studio-2012

我有一个包含大量MOCable头文件(~350)的项目。到目前为止,该项目一直在MSVC2012上使用Qt4,但最近我移植它以与Qt5兼容。在Qt4下,moc步骤将非常快,每秒完成5次或更多次。然而,对于Qt5,这已变得非常慢 - 每个头文件大约4-5秒。使用其他并行(多核)构建只需要15分钟左右,这使我的重建时间增加了两倍。

1 个答案:

答案 0 :(得分:1)

我找到了罪魁祸首:qmake生成的预构建步骤添加了一个读取选项文件的参数:

@path/to/mocinclude.tmp

此选项文件包含一长列include路径指令(在我的例子中为114)。我发现对于我的所有MOCable标头,如果跳过选项文件指令,生成的代码完全相同,加上moc步骤则需要几分之一秒。

我的稍微麻烦的解决方法是通过批处理文件为我的项目运行qmake,并在批处理文件的末尾添加一行以用空白文件覆盖选项文件,如下所示:

copy /y NUL path\to\mocinclude.opt

但是,知道为什么提供该选项文件会导致moc延迟这么长时间。