在构建期间使moc跳过文件/文件夹

时间:2013-02-12 22:00:59

标签: qt libstdc++ moc

这是一个已知的错误,moc在libstdc ++中使用的宏中跳过,如下所述:http://lists.kde.org/?l=necessitas-devel&m=132317657926916&q=raw

我正在尝试编译一个使用gcc 4.6.3的项目,因为moc跳过宏而被卡住了。

解决此问题的一种方法是包含此链接中提到的指令:

http://doc.qt.io/qt-4.8/moc.html

但这很费时而且不是很干净,因为每个文件都必须有这些指令。

我想知道的是,是否可以配置qmake以使moc跳过某些目录/文件?

编辑:拼写错误

1 个答案:

答案 0 :(得分:1)

根据Qt qmake docs moc将运行添加到HEADERS变量的文件(强调我的):

  

qmake将为指定的标头生成依赖关系信息(除非在命令行中指定了-nodepend)。 qmake还会自动检测这些标头中的类是否需要moc ,并将相应的依赖项和文件添加到项目中以生成和链接moc文件。

因此,如果您不希望为某些文件运行moc,则不要将它们添加到.pro文件中的HEADERS。但是,对于某些可能导致在编译相应的.cpp文件时找不到标头的平台。要解决此问题,请为包含此类标头的文件夹添加INCLUDEPATH - 不会为INCLUDEPATH内的标头运行moc。