2014-12-13 1 views
1

-pengl 동적으로 컴파일 된 qt5.4가 있습니다. 나는 그것을 테스트했으며 대체 작업은 정상적으로 작동합니다. 이제 qt3d를 동적 인 OpenGL Qt 라이브러리로 컴파일하고 싶습니다. 그게 가능하니? 문제는 아래 링크 문제로 인해 건물이 끝나는 것입니다. 그리고 내가 제대로 이해한다면 나는 어떤 OpenGL 라이브러리도 추가해서는 안된다. 어떻게 해결할 수 있을까?동적 OpenGL 구현으로 qt3d를 작성하는 방법 (qt5.4 -opengl dynamic)

\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

에서 제거 된 glColor4f 등, glColorPointer, glLightModelfv, glBegin는, 그 기능이 오래되고있는 것을 ANGLE (함수 특히 메인 세트이다 OpenGL은 ES 2.0 아니다 QT가 사용할 수있는 대체 OpenGL 구현)이 구현됩니다. 그래서, 나는 그 기능들이'-opengl desktop'에서만 사용 가능할 것이라고 기대할 것입니다. – PeterT

답변

0

glColor4f, glColorPointerglLightModelfv 모든 OpenGL을 1.1 이상 기능입니다. Windows에서

, 링크시있는 사람들을 제공하는 OpenGL32.lib의 책임입니다. Windows에서 1.1보다 새로운 OpenGL의 모든 부분은 런타임에에 동적으로로드해야하며 Qt는 적절한 래퍼 클래스를 사용하면 실제로이 작업을 수행합니다.

어떤 경우에도이 문제를 해결하려면 OpenGL32.lib을 링커 종속성에 추가하십시오.

0

이 새로운 Qt는 기능 (-opengl dynamic 내 말은) 는 말한다 언급 기사 : 항상 QOpenGLFunctions를 사용해야 및 OpenGL 및 OpenGL ES에서 모두 작동 할 준비를 동적으로 전환되고 싶어

응용 프로그램 2.0

source

그래서, 당신은 같은 기능을 사용할 수 없습니다 @AndonMColreman 상기으로서 OpenGL을 ES 2.0

+1

Qt3d가 새로운 동적 인 OpenGL 구현을 위해 준비되지 않았다는 것을 의미합니다 ... 맞습니까? – miro

관련 문제