首页 > 解决方案 > 设置 MOD_DIR 时,QMake / Moc 的行为不同

问题描述

我现在正在做一个让我头疼的项目。我使用了第三方提供的一段代码,其中有一次,一个 MOC 文件包含在 cpp 文件的末尾。我们分别称这些文件为 moc_problematic.cpp 和有问题的.cpp

如果我将 MOC_DIR 留空 - 通过什么都不做或将 'MOC_DIR = ' 添加到我的 pro 文件中,生成的项目使用 MOC 生成 moc_problematic.cpp (以及所有其他),放在我的项目文件夹中,并自动看到它包含在某处,以后不应编译。

如果我指定自定义 MOD_DIR,MOC 会正确生成所有 MOC 文件并将它们放入我的 MOC_DIR。然后编译器编译所有 moc 文件,包括 moc_problematic,并且构建失败,因为某些标识符是未知的(因为它们是在problem.cpp 中定义的)。

无论我生成 makefile 并使用 nmake 还是生成 vcproj 并使用 Visual Studio,此行为都是相同的。

有人知道我做错了什么吗?

PS我正在使用带有MSVC2013的Qt 5.3.1

标签: c++includeqmakemoc

解决方案


推荐阅读