2014-12-13 97 views
1

我使用-opengl dynamic编译了qt5.4。我已经测试过,后备工作正常。现在我想用动态的opengl qt库来编译qt3d。那可能吗?问题是我的建筑以下面的链接问题结束。如果我理解正确,我不应该添加任何opengl库....我怎么解决这个问题?如何使用Dynamic OpenGL实现构建qt3d(qt5.4 -opengl动态)

\ConvertUTF" -I"..\..\3rdparty\assimp\contrib\zlib" -I"..\..\3rdparty\assimp\contrib\irrXML" -I"..\..\3rdparty\assimp\contrib\unzip" -I"scene_bezier" -I"network" -I"graphicsview" -I"textures" -I"surfaces" -I"api" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtCore\5.4.0" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtCore\5.4.0\QtCore" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtGui\5.4.0" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtGui\5.4.0\QtGui" -I"C:\Qt\5.4_angle\5.4\msvc2013\include" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtOpenGL" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtWidgets" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtGui" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtANGLE" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtCore" -I"C:\Qt\5.4_angle\5.4\msvc2013\include\QtNetwork" -I".moc\debug" -I"C:\Qt\5.4_angle\5.4\msvc2013\mkspecs\win32-msvc2013" -Fo.obj\debug\ @C:\Users\eDS\AppData\Local\Temp\moc_qgltexture2d_p.obj.1576.138606.jom 
moc_qgltexture2d_p.cpp 
    link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /DLL /SUBSYSTEM:WINDOWS /VERSION:5.30 /MANIFEST:embed /OUT:..\..\lib\Qt53Dd.dll @C:\Users\eDS\AppData\Local\Temp\Qt53Dd.dll.1576.142070.jom 
    Creating library ..\..\lib\Qt53Dd.lib and object ..\..\lib\Qt53Dd.exp 
qglpainter.obj : error LNK2019: unresolved external symbol [email protected] referenced in function "public: void __thiscall QGLPainter::updateFixedFunction(class QFlags<enum QGLPainter::Update>)" ([email protected]@@[email protected]@[email protected]@@@@Z) 
qglpainter.obj : error LNK2019: unresolved external symbol [email protected] referenced in function "void __cdecl qt_gl_setVertexAttribute(enum QGL::VertexAttribute,class QGLAttributeValue const &)" ([email protected]@[email protected]@@[email protected]@@Z) 
qglpainter.obj : error LNK2019: unresolved external symbol [email protected] referenced in function "public: void __thiscall QGLPainter::updateFixedFunction(class QFlags<enum QGLPainter::Update>)" ([email protected]@@QAEXV? 
+0

作为@AndonMColreman所述被删除,这些功能是旧的和不在OpenGL ES 2.0这是显着的主要组功能的角度(该角度是QT可以使用的替代OpenGL实现)实现。所以,我希望这些函数只能用于'-opengl desktop' – PeterT 2014-12-13 20:26:34

回答

0

glColor4fglColorPointerglLightModelfv是所有的OpenGL 1.1或以上的功能。

在Windows上,它是OpenGL32.lib责任提供那些链接时。 Windows上的OpenGL比1.1更新的任何部分都必须在运行时间上动态加载,如果使用适当的包装类,Qt实际上会为你做这件事。

无论如何,要解决此问题,只需将OpenGL32.lib添加到链接器依赖项中。

0

是提到了这个全新的Qt功能(-opengl dynamic我的意思) 说文章:希望是动态切换必须始终使用 QOpenGLFunctions,并准备于OpenGL和OpenGL ES两者的作用

应用2.0

source

所以,你不能使用像功能glColor4fglColorPointerglLightModelfvglBegin等已经从OpenGL ES 2.0的

+1

我明白了,所以这意味着qt3d还没有准备好用于新的动态opengl实现,对吧? – miro 2014-12-13 21:24:00