VTK - Migrating from 6.1 to 8.2

2019-08-27 17:32发布

I have a VTK/MFC project which use VTK 6.1 / VS2008. I intend to migrate this project to VTK 8.2 / VS2010, and I encounter a problem:

at stdafx.h, VTK 6.1 I have:

#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle, vtkRenderingFreeType, vtkRenderingFreeTypeOpenGL, vtkRenderingOpenGL)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)

These inits doesn't work on VTK 8.2, I get a link error:

error LNK2001: unresolved external symbol "void __cdecl vtkRenderingFreeTypeOpenGL_AutoInit_Construct(void)" (?vtkRenderingFreeTypeOpenGL_AutoInit_Construct@@YAXXZ)

... what should write here in VTK 8.2 ?

Later edit: I encounter another link error:

vtkRenderingOpenGL2-8.2.lib(vtkOpenGLState.obj) : error LNK2019: unresolved external symbol __imp_SymGetLineFromAddr64 referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getProgramStack(void)" (?getProgramStack@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)

What could be the problem ?

1条回答
劳资没心,怎么记你
2楼-- · 2019-08-27 17:58

How about use OpenGL2?

I have a same Problem at VTK 8.1 , vs2017

I changed CMAKE Option use OpenGL2 , and changed define

#include <vtkAutoInit.h>

VTK_MODULE_INIT(vtkInteractionStyle)
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2)
VTK_MODULE_INIT(vtkRenderingFreeType)

and it worked

查看更多
登录 后发表回答