C++ Qt QPainterpath.h错误
我目前正在使用C++ Qt QPainterpath.h错误,c++,qt,compiler-errors,include-path,qpainter,C++,Qt,Compiler Errors,Include Path,Qpainter,我目前正在使用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/qpaint
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语句移到它们下面的其他类头之前调用,我能够解决它。不过,我似乎不知道这次是什么原因导致了它。任何想法都会很好
谢谢!当您忘记用分号关闭类定义时,我看到过这种情况。如果您查看编译器的输出,并查看此错误开始之前编译的文件,您可能会得到答案。查找语法错误,其中缺少
;
或额外的
或缺少}
在先前编译的文件末尾
它也可能来自您的#include
调用上面列出的有错误的.h
文件
希望这能有所帮助。我正在与RyGuyFalcore合作,并找出了为什么我们的代码中会出现这种情况,而没有其他人看到它。问题是我们的遗留代码重新定义了elementCount宏。因此,如果我们在包含Qt代码之前包含了遗留代码的这一部分,那么使用的宏是错误的:(我想我会在这里发布这篇文章,以避免其他人在遇到类似错误时遇到任何白费力气的追逐。这也是我最初的想法,但它发生在多个.cpp文件之后。所有这些文件都经过了彻底检查,是否缺少大括号和分号以及其中包含的标题。我的想法是,它有一些Qt库不喜欢它们包含在文件中的顺序,但通常这并不重要。如果存在一些奇怪的循环依赖项,可能会有所帮助。您是否向.pro文件添加了正确的模块?因此,我在出现错误之前检查了该文件,并找到了以前包含的GlobalData.h另一个类头。我在所有其他头之后添加了它,现在看起来很好。我还通过C++头、QT头、第三方头和我们自己的类头来订购每一个头。救命啊!