问题1
The moc process failed to compile
"SRC:/..............."
into
"Src:/................................."
command
--------
path/to/path
问题2
tbb/tbb_profiling.:28: Parse error at "{"
问题分析
该bug在5.14已经出现过,5.15仍然未能解决,问题的原因在于moc过程中不支持处理enum包含#include头文件的语法。
解决方案1
- 下载
qt-everywhere-src-5.15.0源代码。 - 进入
qt-everywhere-src-5.15.0\qtbase\src\tools\moc。 - 用
qtcreator双击打开moc.pro。 - 修改文件
moc.cpp,然后重新编译即可。加入代码如下:

也可以复制一下代码:
if (!test(LBRACE))
return false;
auto handleInclude = [this]() {
if (test(MOC_INCLUDE_BEGIN))
currentFilenames.push(symbol().unquotedLexem());
if (test(NOTOKEN)) {
next(MOC_INCLUDE_END);
currentFilenames.pop();
}
};
do {
if (lookup() == RBRACE) // accept trailing comma
break;
handleInclude();
next(IDENTIFIER);
def->values += lexem();
handleInclude();
skipCxxAttributes();
} while (test(EQ) ? until(COMMA) : test(COMMA));
从以下下载程序,替换原来的moc.exe程序即可。
- 下载地址1:moc.exe
- 下载地址2:moc.exe(推荐)

本文针对Qt5.14中Themocprocessfailedtocompile的问题进行了深入分析,发现moc过程不支持处理enum包含#include头文件的语法。提供了解决方案,包括修改moc.cpp文件的具体步骤及替代moc.exe程序的下载地址。
1695

被折叠的 条评论
为什么被折叠?



