Unsolved Qt 5.9.0 build in 32-bit Linux fails
-
(reposted from the general forum, sorry!)
Hi.
I am attempting to compile 5.9.0 from source on Debian 8, 32-bit. After a few hours of compiling, everything grinds to a halt. Here is the log of error messages (as much as could be saved from my terminal line buffer). The errors seem pretty repetitive and seem to stem from forward declaration of QVector3D.
My config:
./configure -prefix /opt/Qt5.9.0 -qt-xcb -no-opengl
The tail end of my error output:
../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:1882:1: note: in expansion of macro ‘QT_FOR_EACH_STATIC_GUI_CLASS’ QT_FOR_EACH_STATIC_GUI_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER) ^ In file included from ../../../include/QtCore/qvector.h:1:0, from ../../../include/QtGui/../../src/gui/painting/qpolygon.h:44, from ../../../include/QtGui/qpolygon.h:1, from ../../../include/QtGui/../../src/gui/painting/qmatrix.h:44, from ../../../include/QtGui/qmatrix.h:1, from ../../../include/QtGui/../../src/gui/painting/qtransform.h:43, from ../../../include/QtGui/qtransform.h:1, from ../../../include/QtGui/../../src/gui/image/qimage.h:48, from ../../../include/QtGui/qimage.h:1, from ../../../include/QtGui/../../src/gui/image/qpixmap.h:49, from ../../../include/QtGui/qpixmap.h:1, from ../../../include/QtGui/../../src/gui/image/qicon.h:46, from ../../../include/QtGui/qicon.h:1, from ../../../include/QtGui/../../src/gui/kernel/qwindow.h:55, from ../../../include/QtGui/qwindow.h:1, from ../../../include/QtGui/QWindow:1, from hellowindow.h:51, from hellowindow.cpp:51: ../../../include/QtCore/../../src/corelib/tools/qvector.h:591:37: error: invalid use of incomplete type ‘class QVector3D’ destruct(x->begin() + asize, x->end()); // from future end to current end ^ In file included from ../../../include/QtCore/qmetatype.h:1:0, from ../../../include/QtCore/../../src/corelib/kernel/qobject.h:54, from ../../../include/QtCore/qobject.h:1, from ../../../include/QtCore/QObject:1, from ../../../include/QtGui/../../src/gui/kernel/qwindow.h:44, from ../../../include/QtGui/qwindow.h:1, from ../../../include/QtGui/QWindow:1, from hellowindow.h:51, from hellowindow.cpp:51: ../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:152:22: error: forward declaration of ‘class QVector3D’ F(QVector3D, 83, QVector3D) \ ^ ../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:1879:11: note: in definition of macro ‘QT_FORWARD_DECLARE_STATIC_TYPES_ITER’ class Name; ^ ../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:1882:1: note: in expansion of macro ‘QT_FOR_EACH_STATIC_GUI_CLASS’ QT_FOR_EACH_STATIC_GUI_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER) ^ In file included from ../../../include/QtCore/qvector.h:1:0, from ../../../include/QtGui/../../src/gui/painting/qpolygon.h:44, from ../../../include/QtGui/qpolygon.h:1, from ../../../include/QtGui/../../src/gui/painting/qmatrix.h:44, from ../../../include/QtGui/qmatrix.h:1, from ../../../include/QtGui/../../src/gui/painting/qtransform.h:43, from ../../../include/QtGui/qtransform.h:1, from ../../../include/QtGui/../../src/gui/image/qimage.h:48, from ../../../include/QtGui/qimage.h:1, from ../../../include/QtGui/../../src/gui/image/qpixmap.h:49, from ../../../include/QtGui/qpixmap.h:1, from ../../../include/QtGui/../../src/gui/image/qicon.h:46, from ../../../include/QtGui/qicon.h:1, from ../../../include/QtGui/../../src/gui/kernel/qwindow.h:55, from ../../../include/QtGui/qwindow.h:1, from ../../../include/QtGui/QWindow:1, from hellowindow.h:51, from hellowindow.cpp:51: ../../../include/QtCore/../../src/corelib/tools/qvector.h:593:55: error: invalid use of incomplete type ‘class QVector3D’ defaultConstruct(x->end(), x->begin() + asize); // from current end to future end ^ In file included from ../../../include/QtCore/qmetatype.h:1:0, from ../../../include/QtCore/../../src/corelib/kernel/qobject.h:54, from ../../../include/QtCore/qobject.h:1, from ../../../include/QtCore/QObject:1, from ../../../include/QtGui/../../src/gui/kernel/qwindow.h:44, from ../../../include/QtGui/qwindow.h:1, from ../../../include/QtGui/QWindow:1, from hellowindow.h:51, from hellowindow.cpp:51: ../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:152:22: error: forward declaration of ‘class QVector3D’ F(QVector3D, 83, QVector3D) \ ^ ../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:1879:11: note: in definition of macro ‘QT_FORWARD_DECLARE_STATIC_TYPES_ITER’ class Name; ^ ../../../include/QtCore/../../src/corelib/kernel/qmetatype.h:1882:1: note: in expansion of macro ‘QT_FOR_EACH_STATIC_GUI_CLASS’ QT_FOR_EACH_STATIC_GUI_CLASS(QT_FORWARD_DECLARE_STATIC_TYPES_ITER) ^ In file included from ../../../include/QtCore/qarraydata.h:1:0, from ../../../include/QtCore/../../src/corelib/tools/qbytearray.h:46, from ../../../include/QtCore/qbytearray.h:1, from ../../../include/QtCore/../../src/corelib/tools/qstring.h:49, from ../../../include/QtCore/qstring.h:1, from ../../../include/QtCore/../../src/corelib/kernel/qobject.h:47, from ../../../include/QtCore/qobject.h:1, from ../../../include/QtCore/QObject:1, from ../../../include/QtGui/../../src/gui/kernel/qwindow.h:44, from ../../../include/QtGui/qwindow.h:1, from ../../../include/QtGui/QWindow:1, from hellowindow.h:51, from hellowindow.cpp:51: ../../../include/QtCore/../../src/corelib/tools/qarraydata.h: In instantiation of ‘static QTypedArrayData<T>* QTypedArrayData<T>::allocate(size_t, QArrayData::AllocationOptions) [with T = QVector3D; size_t = unsigned int; QArrayData::AllocationOptions = QFlags<QArrayData::AllocationOption>]’: ../../../include/QtCore/../../src/corelib/tools/qvector.h:544:51: required from ‘void QVector<T>::reallocData(int, int, QArrayData::AllocationOptions) [with T = QVector3D; QArrayData::AllocationOptions = QFlags<QArrayData::AllocationOption>]’ ../../../include/QtCore/../../src/corelib/tools/qvector.h:423:37: required from ‘void QVector<T>::resize(int) [with T = QVector3D]’ ../../../include/QtCore/../../src/corelib/tools/qvector.h:427:11: required from ‘void QVector<T>::clear() [with T = QVector3D]’ hellowindow.cpp:256:20: required from here ../../../include/QtCore/../../src/corelib/tools/qarraydata.h:222:74: error: invalid application of ‘sizeof’ to incomplete type ‘QVector3D’ return static_cast<QTypedArrayData *>(QArrayData::allocate(sizeof(T), ^ ../../../include/QtCore/../../src/corelib/tools/qarraydata.h: In static member function ‘static QTypedArrayData<T>* QTypedArrayData<T>::allocate(size_t, QArrayData::AllocationOptions) [with T = QVector3D; size_t = unsigned int; QArrayData::AllocationOptions = QFlags<QArrayData::AllocationOption>]’: ../../../include/QtCore/../../src/corelib/tools/qarraydata.h:224:5: warning: control reaches end of non-void function [-Wreturn-type] } ^ Makefile:1025: recipe for target '.obj/hellowindow.o' failed make[4]: *** [.obj/hellowindow.o] Error 1 make[4]: Leaving directory '/home/tendim/dev/Qt5.9.0/qt-everywhere-opensource-src-5.9.0/qtbase/examples/opengl/hellowindow' Makefile:56: recipe for target 'sub-hellowindow-make_first' failed make[3]: *** [sub-hellowindow-make_first] Error 2 make[3]: Leaving directory '/home/tendim/dev/Qt5.9.0/qt-everywhere-opensource-src-5.9.0/qtbase/examples/opengl' Makefile:357: recipe for target 'sub-opengl-make_first' failed make[2]: *** [sub-opengl-make_first] Error 2 make[2]: Leaving directory '/home/tendim/dev/Qt5.9.0/qt-everywhere-opensource-src-5.9.0/qtbase/examples' Makefile:74: recipe for target 'sub-examples-make_first' failed make[1]: *** [sub-examples-make_first] Error 2 make[1]: Leaving directory '/home/tendim/dev/Qt5.9.0/qt-everywhere-opensource-src-5.9.0/qtbase' Makefile:83: recipe for target 'module-qtbase-make_first' failed make: *** [module-qtbase-make_first] Error 2 tendim@LuTze:~/dev/Qt5.9.0/qt-everywhere-opensource-src-5.9.0$
-
Hi,
What version of gcc are you using ?
-
@SGaist 4.9.2 (Debian 4.9.2-10) to be exact).
-
Are you running a 32bit Debian or compiling on a multilib 64bit Debian ?
-
32-bit.
arch reports i686; uname -a reports "3.16.0-4-686-pae #1 SMP Debian 3.16.43-2 (2017-04-30) i686 GNU/Linux"
-
I just realised something, while building Qt yourself you should add
-nomake tests -nomake examples
, that will avoid building them for no real benefit and in your case continue further.By the way, why disable OpenGL ?
-
Thanks @SGaist. I'd have to go back and look at my notes as to why I disabled OpenGL; it was something to do with a library not working during the configuration step. I will try recompiling without tests and examples to see how far I get.