在ubuntu上编译qt3d

compiling qt3d on ubuntu

本文关键字:qt3d 编译 ubuntu      更新时间:2023-10-16

我已经尝试遵循http://doc.qt.nokia.com/qt3d-snapshot/qt3d-building.html#installing-plugins

在所有编译过程之后,它卡住了:

fabio@guanciolo:~/build/qt-labs/qt3d$ make
cd src/ && make -f Makefile 
make[1]: Entering directory `/home/fabio/build/qt-labs/qt3d/src'
cd threed/ && make -f Makefile 
make[2]: Entering directory `/home/fabio/build/qt-labs/qt3d/src/threed'
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_BUILD_QT3D_LIB -DQT_NO_EGL -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/qt/mkspecs/linux-g++-64 -I/home/fabio/depot/qt-labs/qt3d/src/threed -I/opt/qt/include/QtCore -I/opt/qt/include/QtNetwork -I/opt/qt/include/QtGui -I/opt/qt/include/QtOpenGL -I/opt/qt/include -I/home/fabio/depot/qt-labs/qt3d/src/threed/global -I/home/fabio/depot/qt-labs/qt3d/src/threed/painting -I/home/fabio/depot/qt-labs/qt3d/src/threed/arrays -I/home/fabio/depot/qt-labs/qt3d/src/threed/effects -I/home/fabio/depot/qt-labs/qt3d/src/threed/materials -I/home/fabio/depot/qt-labs/qt3d/src/threed/geometry -I/home/fabio/depot/qt-labs/qt3d/src/threed/viewing -I/home/fabio/depot/qt-labs/qt3d/src/threed/math3d -I/home/fabio/depot/qt-labs/qt3d/src/threed/scene -I/home/fabio/depot/qt-labs/qt3d/src/threed/graphicsview -I/home/fabio/depot/qt-labs/qt3d/src/threed/textures -I/home/fabio/depot/qt-labs/qt3d/src/threed/surfaces -I/home/fabio/depot/qt-labs/qt3d/src/threed/api -I/usr/X11R6/include -I. -I/home/fabio/depot/qt-labs/qt3d/src/threed -I. -o qglabstracteffect.o /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.cpp
In file included from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglpainter.h:47:0,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.h:45,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.cpp:42:
/opt/qt/include/QtGui/qvector2d.h: In function ‘bool operator==(const QVector2D&, const QVector2D&)’:
/opt/qt/include/QtGui/qvector2d.h:184:24: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector2d.h:184:42: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector2d.h: In function ‘bool operator!=(const QVector2D&, const QVector2D&)’:
/opt/qt/include/QtGui/qvector2d.h:189:24: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector2d.h:189:42: warning: comparing floating point with == or != is unsafe
In file included from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglpainter.h:48:0,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.h:45,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.cpp:42:
/opt/qt/include/QtGui/qvector3d.h: In function ‘bool operator==(const QVector3D&, const QVector3D&)’:
/opt/qt/include/QtGui/qvector3d.h:210:24: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector3d.h:210:42: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector3d.h:210:60: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector3d.h: In function ‘bool operator!=(const QVector3D&, const QVector3D&)’:
/opt/qt/include/QtGui/qvector3d.h:215:24: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector3d.h:215:42: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector3d.h:215:60: warning: comparing floating point with == or != is unsafe
In file included from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglpainter.h:49:0,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.h:45,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.cpp:42:
/opt/qt/include/QtGui/qvector4d.h: In function ‘bool operator==(const QVector4D&, const QVector4D&)’:
/opt/qt/include/QtGui/qvector4d.h:214:24: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector4d.h:214:42: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector4d.h:214:60: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector4d.h:214:78: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector4d.h: In function ‘bool operator!=(const QVector4D&, const QVector4D&)’:
/opt/qt/include/QtGui/qvector4d.h:219:24: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector4d.h:219:42: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector4d.h:219:60: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qvector4d.h:219:78: warning: comparing floating point with == or != is unsafe
In file included from /opt/qt/include/QtGui/qmatrix4x4.h:47:0,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglpainter.h:50,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.h:45,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.cpp:42:
/opt/qt/include/QtGui/qquaternion.h: In member function ‘bool QQuaternion::isIdentity() const’:
/opt/qt/include/QtGui/qquaternion.h:154:63: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qquaternion.h: In function ‘bool operator==(const QQuaternion&, const QQuaternion&)’:
/opt/qt/include/QtGui/qquaternion.h:239:24: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qquaternion.h:239:42: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qquaternion.h:239:60: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qquaternion.h:239:78: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qquaternion.h: In function ‘bool operator!=(const QQuaternion&, const QQuaternion&)’:
/opt/qt/include/QtGui/qquaternion.h:244:24: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qquaternion.h:244:42: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qquaternion.h:244:60: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qquaternion.h:244:78: warning: comparing floating point with == or != is unsafe
In file included from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglpainter.h:50:0,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.h:45,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.cpp:42:
/opt/qt/include/QtGui/qmatrix4x4.h: In member function ‘bool QMatrix4x4::isIdentity() const’:
/opt/qt/include/QtGui/qmatrix4x4.h:309:20: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:309:39: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:309:58: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:311:20: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:311:39: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:311:58: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:313:20: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:313:39: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:313:58: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:315:20: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:315:39: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:315:58: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:317:20: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:317:39: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:317:58: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:319:24: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h: In member function ‘bool QMatrix4x4::operator==(const QMatrix4x4&) const’:
/opt/qt/include/QtGui/qmatrix4x4.h:445:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:446:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:447:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:448:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:449:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:450:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:451:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:452:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:453:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:454:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:455:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:456:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:457:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:458:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:459:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:460:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h: In member function ‘bool QMatrix4x4::operator!=(const QMatrix4x4&) const’:
/opt/qt/include/QtGui/qmatrix4x4.h:465:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:466:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:467:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:468:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:469:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:470:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:471:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:472:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:473:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:474:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:475:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:476:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:477:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:478:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:479:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h:480:35: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h: In function ‘QVector3D operator*(const QVector3D&, const QMatrix4x4&)’:
/opt/qt/include/QtGui/qmatrix4x4.h:623:14: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h: In function ‘QVector3D operator*(const QMatrix4x4&, const QVector3D&)’:
/opt/qt/include/QtGui/qmatrix4x4.h:648:14: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h: In function ‘QPoint operator*(const QPoint&, const QMatrix4x4&)’:
/opt/qt/include/QtGui/qmatrix4x4.h:719:14: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h: In function ‘QPointF operator*(const QPointF&, const QMatrix4x4&)’:
/opt/qt/include/QtGui/qmatrix4x4.h:740:14: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h: In function ‘QPoint operator*(const QMatrix4x4&, const QPoint&)’:
/opt/qt/include/QtGui/qmatrix4x4.h:762:14: warning: comparing floating point with == or != is unsafe
/opt/qt/include/QtGui/qmatrix4x4.h: In function ‘QPointF operator*(const QMatrix4x4&, const QPointF&)’:
/opt/qt/include/QtGui/qmatrix4x4.h:783:14: warning: comparing floating point with == or != is unsafe
In file included from /home/fabio/depot/qt-labs/qt3d/src/threed/math3d/qbox3d.h:46:0,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglpainter.h:51,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.h:45,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.cpp:42:
/home/fabio/depot/qt-labs/qt3d/src/threed/math3d/qray3d.h: In member function ‘void QRay3D::transform(const QMatrix4x4&)’:
/home/fabio/depot/qt-labs/qt3d/src/threed/math3d/qray3d.h:125:26: error: ‘const class QMatrix4x4’ has no member named ‘mapVector’
/home/fabio/depot/qt-labs/qt3d/src/threed/math3d/qray3d.h: In member function ‘QRay3D QRay3D::transformed(const QMatrix4x4&) const’:
/home/fabio/depot/qt-labs/qt3d/src/threed/math3d/qray3d.h:130:45: error: ‘const class QMatrix4x4’ has no member named ‘mapVector’
In file included from /home/fabio/depot/qt-labs/qt3d/src/threed/arrays/qcustomdataarray.h:45:0,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/arrays/qglvertexbundle.h:46,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglpainter.h:53,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.h:45,
                 from /home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.cpp:42:
/home/fabio/depot/qt-labs/qt3d/src/threed/arrays/qarray.h: In member function ‘QArray<T, PreallocSize>::Data* QArray<T, PreallocSize>::copyData(const T*, int, int)’:
/home/fabio/depot/qt-labs/qt3d/src/threed/arrays/qarray.h:384:5: error: ‘QT_TRY’ was not declared in this scope
/home/fabio/depot/qt-labs/qt3d/src/threed/arrays/qarray.h:384:12: error: expected ‘;’ before ‘{’ token
/home/fabio/depot/qt-labs/qt3d/src/threed/painting/qglabstracteffect.cpp:127:1: error: expected ‘}’ at end of input
make[2]: *** [qglabstracteffect.o] Error 1
make[2]: Leaving directory `/home/fabio/build/qt-labs/qt3d/src/threed'
make[1]: *** [sub-threed-make_default-ordered] Error 2
make[1]: Leaving directory `/home/fabio/build/qt-labs/qt3d/src'
make: *** [sub-src-make_default-ordered] Error 2

如何编译它?有办法找到二进制和-dev版本的ubuntu?

可能是64位架构?

我建议使用稳定的公共分支而不是旧的实验室分支。那个实验室分支已经有一段时间没有维护了。在你做任何事情之前,去获取最新的稳定源代码。

上面的问题看起来像Qt 4的一些问题。通常我建议使用最新的Qt SDK——它内置了Qt 4.7。但是下载量很大。

如果你使用的是linux,特别是Ubuntu Lucid这样的最新版本,它可以支持Qt 4.7,那么试试:

apt-get build-dep qt4-qmake

举个例子,Ubuntu Lucid应该得到所有的依赖,包括Qt 4.7开发库,这将节省你构建Qt,然后只需要执行qmake quick3d.pro来使用安装的系统Qt。

如果你真的想构建Qt(也许你需要能够在Qt库中放置qDebug()语句),那么你可以使用Qt下载页面的源代码,或者从giitorious获得它们。然后按照构建行(如构建文档中所述):

 /path/to/qt/configure -developer-build -no-qt3support -no-webkit -no-xmlpatterns 
  -no-phonon -opengl -declarative -nomake demos -nomake examples

Qt3D在64位上进行定期测试,因此应该没有问题。

我也遇到了同样的问题。你需要使用4.8版本的Qt,目前Ubuntu软件库中的Qt版本是4.7.4。我通过添加KDE后台端口(PPA)解决了这个问题,其中包括您应该做的libqt4-dev:4.8.1:

sudo add-apt-repository ppa:kubuntu-ppa/backports 
sudo apt-get update
sudo apt-get install libqt4-dev

我目前正在oneiric上编译;)

请注意,精确的穿山甲,将在后天升起。她的软件库中有Qt 4.8.1。