Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.6.0 RC
-
None
-
Windows 10 x64, Visual Studio 2015
-
38944d662eda76ecc57cb1fd61da42775fa52f6f
Description
I ran into a problem building Qt5.6.0-rc on Windows that was not present in the beta, after many hours of debugging and looking at cl.exe /E output I came to the conclusion that something is wrong with the packaged includes/QtGui/QtGui file.
The build error I got was:
cl -c -Yc -Fp.pch\release\Qt5OpenGL_pch.pch -Fo.pch\release\Qt5OpenGL_pch.obj -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -O2 -MD -Zi -D_HAS_EXCEPTIONS=0 -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 /Fd..\..\lib\Qt5OpenGL.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_NO_USING_NAMESPACE -DQT_BUILD_OPENGL_LIB -DQT_BUILDING_QT -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -I. -Ic:\Jenkins\pmp-qt-deps\BUILD_TAG\windows-x86_64\output\konvergo-qt-windows-x86_64-release-5252e32\include -I..\..\include -I..\..\include\QtOpenGL -I..\..\include\QtOpenGL\5.6.0 -I..\..\include\QtOpenGL\5.6.0\QtOpenGL -Itmp -I..\..\include\QtWidgets\5.6.0 -I..\..\include\QtWidgets\5.6.0\QtWidgets -I..\..\include\QtGui\5.6.0 -I..\..\include\QtGui\5.6.0\QtGui -I..\..\include\QtCore\5.6.0 -I..\..\include\QtCore\5.6.0\QtCore -I..\..\include\QtWidgets -I..\..\include\QtGui -I..\..\include\QtANGLE -I..\..\include\QtCore -I.moc\release -I..\..\mkspecs\win32-msvc2015 -TP ..\..\include\QtOpenGL\QtOpenGLDepends QtOpenGLDepends c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(22): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(22): error C2146: syntax error: missing ';' before identifier 'GLint64' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(22): warning C4091: '': ignored on left of 'int64_t' when no variable is declared c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(23): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(23): error C2146: syntax error: missing ';' before identifier 'GLuint64' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(23): warning C4091: '': ignored on left of 'uint64_t' when no variable is declared c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(244): error C2143: syntax error: missing ')' before '*' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(244): error C2143: syntax error: missing ';' before '*' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(244): error C2059: syntax error: ')' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(244): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(245): error C2143: syntax error: missing ')' before '*' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(245): error C2143: syntax error: missing ';' before '*' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(245): error C2059: syntax error: ')' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(245): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(314): error C2143: syntax error: missing ')' before '*' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(314): error C2143: syntax error: missing ';' before '*' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(314): error C2059: syntax error: ')' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(314): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(315): error C2143: syntax error: missing ')' before '*' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(315): error C2143: syntax error: missing ';' before '*' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(315): error C2059: syntax error: ')' c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(315): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\temp\qt\qtbase\include\qtgui\../../src/gui/opengl/qopengles2ext.h(328): error C2059: syntax error: '<parameter-list>'jom: C:\temp\qt\qtbase\src\opengl\Makefile.Release [.pch\release\Qt5OpenGL_pch.obj] Error 2
This seems to be because qopengles2ext.h is included in QtGui/QtGui. This was not the case in the beta.
This also works when building from Git because the generated file does not contain that header. My guess is that this is because the generated headers in the packaged source is not configured for dynamic OpenGL.
I would consider this a blocker, I can patch this file out or just use the include from the beta, but this is a problem for anyone trying to use the source package and build a dynamic build.