5

这是一个已知的错误,即 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 跳过某些目录/文件吗?

编辑:错别字

4

1 回答 1

2

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

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

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

于 2013-04-06T05:43:34.747 回答