报错:
1>main.obj : error LNK2001: 无法解析的外部符号 "void __cdecl vtkRenderingOpenGL2_AutoInit_Construct(void)" (?vtkRenderingOpenGL2_AutoInit_Construct@@YAXXZ)
1>main.obj : error LNK2001: 无法解析的外部符号 "void __cdecl vtkRenderingOpenGL2_AutoInit_Destruct(void)" (?vtkRenderingOpenGL2_AutoInit_Destruct@@YAXXZ)
1>D:\Workspace\visual studio 2010\test\Debug\test.exe : fatal error LNK1120: 2 个无法解析的外部命令
解决:
VTK6.0之后版本使用如下语句初始化:
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL)
VTK6.0之前版本使用如下语句初始化:
#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeType,vtkRenderingOpenGL)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
官方有文档说明:
“If you are using an older version of VTK (6.0 or master from before the date above) than you can try including this snippet in all your code that includes VTK usage, BEFORE including ANY VTK header files:
#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL) #define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)”
另外需要注意:
在Cmake中配置的是vtkRenderingOpenGL还是vtkRenderingOpenGL2,在初始化要使用相同的。