VTK-从6.1迁移到8.2

时间:2019-03-11 19:13:31

标签: visual-c++ mfc vtk

我有一个使用VTK 6.1 / VS2008的VTK / MFC项目。我打算将此项目迁移到VTK 8.2 / VS2010,但遇到问题:

在stdafx.h,VTK 6.1我有:

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

这些初始化在VTK 8.2上不起作用,我收到链接错误:

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

...在VTK 8.2中应该写什么?

以后的修改: 我遇到另一个链接错误:

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)

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

如何使用OpenGL2?

我在VTK 8.1和2017年有一个相同的问题

我使用OpenGL2更改了CMAKE Option,并更改了定义

#include <vtkAutoInit.h>

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

成功了