vtkRenderer 错误

Error with vtkRenderer

我是 vtk 的新手,所以我开始使用 CMake 和 Visual Studio 2017 构建 vtk 8.1.1,使用默认选项和示例。

许多示例运行良好,但其中一些出现错误:

这个是CreateTree的例子,但是HelloWorld报同样的错误

不知道和this issue有没有关系。

我也试过 this question and this one 的解决方案。但是当我添加

#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);

在所有包含之后,Visual Studio 给我这个错误:

1>CreateTree.obj : 错误 LNK2019: 未解析的外部符号 "void __cdecl vtkRenderingOpenGL2_AutoInit_Construct(void)" (?vtkRenderingOpenGL2_AutoInit_Construct@@YAXXZ) 在函数 "public: __thiscall vtkRenderingOpenGL2_ModuleInit::vtkRenderingOpenGL2_ModuleInit(void)" (??0vtkRenderingOpenGL2_ModuleInit@@QAE@XZ)

1>CreateTree.obj : 错误 LNK2019: 未解析的外部符号 "void __cdecl vtkRenderingOpenGL2_AutoInit_Destruct(void)" (?vtkRenderingOpenGL2_AutoInit_Destruct@@YAXXZ) 在函数 "public: __thiscall vtkRenderingOpenGL2_ModuleInit::~vtkRenderingOpenGL2_ModuleInit(void)" (??1vtkRenderingOpenGL2_ModuleInit@@QAE@XZ)

1>C:\vtkSource\bin\bin\Debug\CreateTree.exe : 致命错误 LNK1120: 2 个未解析的外部程序

如果我尝试 VTK_MODULE_INIT(vtkRenderingWindow)VTK_MODULE_INIT(vtkRenderingOpenGL) 我会得到同样的错误。

此外,像 Delaunay3D 这样的例子只会打开一个 window,然后关闭得如此之快,我什至看不到它到底有什么。

您是否尝试添加以下行

vtkRendering${VTK_RENDERING_BACKEND}

CMakeLists.txt 中的 set(VTK_Modules ...) 命令,用于 HelloWorldCreateTree 项目,就像 the link you posted 中建议的那样。

编辑

为了给初学者扩充说明,CMakeLists.txt就是路径VTK-8.1.1\Examples\Infovis\Cxx。该文件应如下所示: