Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Error in qvector3d.h even though im not even using it
Hi guys, right now i got a strange behaviour:
My current project was originally created on a linux system using QtCreator (at my university).
Now im at home and trying to build it, but im getting a strange error message:
They are all rooted in the qvector3d.h file which i am not using at all to my knowledge. (used to use it though, but replaced it with a stripped down template class named "Point3D"
Nowhere am i including qvector3d.h and even then it should not created any errors.
Any thoughts? I tried cleaning and rebuilding the project of course.
Nobody got an idea?
Or is something unclear?
Why is Qt crying about a missing semicolon for example before the "<" in this line "class Q_GUI_EXPORT Point3D__<qreal>" of qvector3d.h?
This sounds similar to errors i got when i lacked a closing semicolon after a class declaration but i checked all my classes and none is missing
To give an answer myself:
Turns out QtCreator 5 was natively built (precompiled) using OpenGL ES which the project i tried to run did not use (but the "proper" opengl version).
Have to rebuilt the QtCreator myself with the proper options, i quote for completness:
OK that is the source of your issues then. The pre-compiled Windows desktop version of Qt5 is built against ANGLE which only provides OpenGL ES 2 support by implementing it on top of DirectX 9.
This was done to ensure that QtQuick2 works on all windows systems, including those with crappy Intel OpenGL drivers ;)
OpenGL ES 2 does not support the legacy fixed function pipeline, only a shader-based one.
There is a bug open to provide a build of Qt 5 using the native desktop OpenGL implementation for Qt 5.0.1. Please go vote for https://bugreports.qt-project.org/browse/QTBUG-28715 to see this happen.
For now, you have two choices:
Live with OpenGL ES 2 support and don’t use legacy OpenGL Build your own copy of Qt 5 to use the native OpenGL drivers by passing in -opengl desktop
With the 2nd option you should have access to OpenGL from 1.0 up to 4.3 (if your card/driver support it).