Qt QPainterpath.h errors

Qt QPainterpath.h errors

本文关键字:errors QPainterpath Qt      更新时间:2023-10-16

我目前正在使用Qt库中的许多#include文件开发Qt应用程序。这个项目很大,我在建设的时候遇到了一个奇怪的问题。显示的错误都在QPainterpath.h文件中,但与我的项目对它的调用无关。这些错误看起来都是这样的:

c:qt4.8.4includeqtgui../../src/gui/painting/qpainterpath.h(397):错误C2143:语法错误:在'::'之前缺少';'

c:qt4.8.4includeqtgui../../src/gui/painting/qpainterpath.h(397): error C2059:语法错误:'::'

c:qt4.8.4includeqtgui../../src/gui/painting/qpainterpath.h(398):错误C2143:语法错误:在"{"之前缺少";"

c:qt4.8.4includeqtgui../../src/gui/painting/qpainterpath.h(398):错误C2447: '{':缺少函数头(旧式正式列表?)

c:qt4.8.4includeqtgui../…/src/gui/painting/qpainterpath.h(405):警告C4003:宏'elementCount'的实际参数不足

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

谢谢!

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

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

希望对你有帮助。

我正在与RyGuyFalcore一起工作,并找出了为什么这发生在我们的代码中,而没有其他人看到它。问题是我们的遗留代码重新定义了elementCount宏。因此,如果我们在包含Qt代码之前包含了遗留代码的那一部分,就会使用错误的宏:(我想我会在这里发布这篇文章,以避免其他人在遇到类似的错误时可能遇到的任何徒劳的追逐。