这是一个已知的错误,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跳过某些目录/文件?
编辑:拼写错误
答案 0 :(得分:1)
根据Qt qmake docs moc将运行添加到HEADERS
变量的文件(强调我的):
qmake将为指定的标头生成依赖关系信息(除非在命令行中指定了-nodepend)。 qmake还会自动检测这些标头中的类是否需要moc ,并将相应的依赖项和文件添加到项目中以生成和链接moc文件。
因此,如果您不希望为某些文件运行moc,则不要将它们添加到.pro文件中的HEADERS
。但是,对于某些可能导致在编译相应的.cpp文件时找不到标头的平台。要解决此问题,请为包含此类标头的文件夹添加INCLUDEPATH
- 不会为INCLUDEPATH
内的标头运行moc。