1

我目前正在开发一个包含库Qt中许多#include文件的应用程序Qt。项目挺大的,在搭建的时候遇到了一个奇怪的问题。显示的错误都在QPainterpath.h文件中,但与我的项目对其的调用无关。错误都如下所示:

c:\qt\4.8.4\include\qtgui../../src/gui/painting/qpainterpath.h(397):错误 C2143:语法错误:缺少';' 前 '::'

c:\qt\4.8.4\include\qtgui../../src/gui/painting/qpainterpath.h(397):错误 C2059:语法错误:'::'

c:\qt\4.8.4\include\qtgui../../src/gui/painting/qpainterpath.h(398):错误 C2143:语法错误:缺少“;” 前 '{'

c:\qt\4.8.4\include\qtgui../../src/gui/painting/qpainterpath.h(398) : 错误 C2447: '{' : 缺少函数头(旧式正式列表?)

c:\qt\4.8.4\include\qtgui../../src/gui/painting/qpainterpath.h(405) : 警告 C4003: 宏 'elementCount' 的实际参数不足

我以前遇到过一次,并且能够通过将一些Qt#include 语句移动到它们下面的其他类头之前调用来解决它。不过,我似乎无法弄清楚这次是什么原因造成的。任何想法都会很棒!

谢谢!

4

2 回答 2

1

当您忘记用分号关闭类定义时,我已经看到了这种情况。如果您查看编译器的输出,并查看在此错误开始之前编译了哪个文件,您可能会得到答案。在先前编译的文件末尾查找缺少 a;或 extra}或缺少的语法错误。}

它也可能来自您调用.h上方列出的有错误的文件。#include <QPainter>

希望有帮助。

于 2013-04-18T05:58:06.403 回答
1

我正在与 RyGuyFalcore 合作,并弄清楚为什么我们的代码会发生这种情况,而没有其他人看到它。问题是我们的遗留代码重新定义了 elementCount 宏。因此,如果我们在包含 Qt 代码之前包含了遗留代码的那部分,则使用了错误的宏 :( 想我会在此处发布此内容以避免其他人遇到类似错误时可能会遇到的任何疯狂追逐。

于 2013-05-28T19:29:27.687 回答