这是一个已知的错误,moc跳过了libstdc ++中使用的宏,如下所述:http://lists.kde.org/? l = ancessitas-devel&m = 132317657926916&q = raw
我正在尝试编译一个使用gcc 4.6.3的项目,因为moc跳过宏而被卡住了.
克服该问题的一种方法是包含此链接中提到的指令:
http://doc.qt.io/qt-4.8/moc.html
但这是耗时的,而不是一个非常干净的方式,因为每个文件都必须有这些指令.
我想知道的是,是否可以配置qmake以使moc跳过某些目录/文件?
编辑:错别字
根据Qt qmake 文档, moc 将为添加到HEADERS变量的文件运行(强调我的):
qmake 将为指定的标头生成依赖关系信息(除非在命令行上指定了 -nodepend)。qmake还会自动检测这些头文件中的类是否需要moc,并将适当的依赖项和文件添加到项目中以生成和链接moc文件。
因此,如果您不希望对某些文件运行 moc,则不要将它们添加到HEADERS.pro 文件中。但是,对于某些平台,可能会导致编译相应的 .cpp 文件时找不到标头。要解决此问题,请为包含此类标头的文件夹添加INCLUDEPATH- moc 不会对INCLUDEPATH.