vtkCharts库既不能用于Visual Studio也不能用于GCC编译器 - 为什么?

时间:2011-06-19 10:12:02

标签: c++ visual-c++ visualization data-visualization vtk

我是vtk的新手,我想使用vtkCharts库。在Linux和Windows中,我编译了vtk并设法使用大多数示例。

唯一令人烦恼的例子包括图表库,例如链接中的那个:

Line plot example

当我编译时,在Visual Studio中它会产生一些链接错误。细分如下。我没有忘记包含vtkCharts库。

  

1> vtkCharts.lib(vtkContextView.obj):   错误LNK2019:未解析的外部   符号“protected:virtual __thiscall   vtkRenderView ::〜vtkRenderView(无效)”   (?? 1vtkRenderView @@ MAE @ XZ)引用   在功能“保护:虚拟   __thiscall vtkContextView ::〜vtkContextView(void)“   (?? 1vtkContextView @@ @ MAE XZ)   1> vtkCharts.lib(vtkContextView.obj):   错误LNK2019:未解析的外部   符号“公共:虚拟空虚   __thiscall vtkRenderView :: SetDisplayHoverText(bool)“   (?SetDisplayHoverText @ vtkRenderView @@ UAEX_N @ Z)   在函数中引用“protected:   __thiscall vtkContextView :: vtkContextView(void)“   (?? 0vtkContextView @@ @ IAE XZ)   1> vtkCharts.lib(vtkContextView.obj):   错误LNK2019:未解析的外部   符号“protected:__ thishisall   vtkRenderView :: vtkRenderView(无效)”   (?? 0vtkRenderView @@ IAE @XZ)引用   在功能“保护:__这个   vtkContextView :: vtkContextView(无效)”   (?? 0vtkContextView @@ @ IAE XZ)   1> vtkCharts.lib(vtkContextView.obj):   错误LNK2001:未解析的外部   符号“公共:虚拟空虚   __thiscall vtkView :: Update(void)“(?更新@ vtkView @@ UAEXXZ)   1> vtkCharts.lib(vtkContextView.obj):   错误LNK2001:未解析的外部   符号“公共:虚拟空虚   __thiscall vtkRenderView :: ApplyViewTheme(class   vtkViewTheme *)“   (?ApplyViewTheme @ vtkRenderView @@ UAEXPAVvtkViewTheme @@@ Z)   1> vtkCharts.lib(vtkContextView.obj):   错误LNK2001:未解析的外部   符号“受保护:虚拟空白   __thiscall vtkRenderView :: ProcessEvents(class   vtkObject *,unsigned long,void *)“   (?ProcessEvents @ @@ vtkRenderView @@ MAEXPAVvtkObject @ KPAX Z)

在Code :: Blocks中,使用GCC,它会出现如下错误:

  

./ VTK-构建/ VTK-5.6 / VTK /图表/ vtkChart.h | 38 |错误:   在'{'标记|之前的预期类名   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|40|error:   'vtkContextItem'没有命名类型|   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|40|error:   'vtkContextItem'还没有   声明|   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|40|error:   类型无效的static_cast   'vtkObjectBase *'键入'vtkChart *'|   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h||In   成员函数'虚拟   vtkObjectBase *   vtkChart :: NewInstanceInternal()   常量”:|   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|40|error:   'New'不是'vtkChart'|的成员   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h||In   成员函数'虚拟   vtkAnnotationLink *   vtkChart :: GetAnnotationLink()”:|   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|104|error:   'class vtkChart'没有名字的成员   “GetDebug” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|104|error:   'class vtkChart'没有名字的成员   调用“GetClassName” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|104|error:   'class vtkChart'没有名字的成员   调用“GetClassName” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h||In   成员函数'虚拟空虚   vtkChart :: SetGeometry(int,int)':|   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|108|error:   'class vtkChart'没有名字的成员   “GetDebug” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|108|error:   'class vtkChart'没有名字的成员   调用“GetClassName” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|108|error:   'class vtkChart'没有名字的成员   调用“GetClassName” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|108|error:   'class vtkChart'没有名字的成员   “修改” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h||In   成员函数'virtual int *   vtkChart :: GetGeometry()”:|   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|109|error:   'class vtkChart'没有名字的成员   “GetDebug” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|109|error:   'class vtkChart'没有名字的成员   调用“GetClassName” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|109|error:   'class vtkChart'没有名字的成员   调用“GetClassName” |   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h||In   成员函数'虚拟空虚   vtkChart :: GetGeometry(int&,int&)':|   ../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|109|error:   'class vtkChart'没有名字的成员   “GetDebug” |

我在两个平台上都使用vtk 5-6。我想知道可能发生此错误的原因。

谢谢。

1 个答案:

答案 0 :(得分:1)

  

我没有忘记包含vtkCharts库。

然后你可能忘了包含vtkHybrid库。请注意cmake文件中的最后一行。