-2

我设法在我的 ubuntu 上安装了 vtk。我使用 code::Blocks 作为编译器,在 c++ 中工作。我还编译并运行了 vtk 示例网页中给出的一些示例。但是在某些示例中,例如当涉及 vtkChart.h 时,我的编译器会给出引用文件内容的错误。

这些头文件是自动生成的,应该没有错误。您可以查看下面的图片。可能有什么问题?是编译器造成的吗?

谢谢大家。

在此处输入图像描述

对于看不到图片的人,代码如下:

#ifndef __vtkChart_h
#define __vtkChart_h

#include "vtkContextItem.h"

class vtkTransform2D;
class vtkContext2D;
class vtkContextScene;
class vtkPlot;
class vtkAxis;
class vtkTextProperty;

class vtkInteractorStyle;
class vtkAnnotationLink;
class vtkTable;

class VTK_CHARTS_EXPORT vtkChart : public vtkContextItem
{
public:
  vtkTypeMacro(vtkChart, vtkContextItem);
  virtual void PrintSelf(ostream &os, vtkIndent indent);

仅对于显示的代码段,会出现以下错误。

../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|38|错误:“{”标记之前的预期类名|

../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|40|错误:'vtkContextItem'没有命名类型|

../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|40|错误:'vtkContextItem'尚未声明|

../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|40|错误:从类型“vtkObjectBase*”到类型“vtkChart*”的静态转换无效|

../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h||在成员函数'virtual vtkObjectBase* vtkChart::NewInstanceInternal() const':|

../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|40|错误:'新'不是'vtkChart'的成员|

继续..

4

1 回答 1

2

首先,Code::Blocks 不是编译器,它是使用 GCC 或 MSVC 作为编译器的 IDE。因此,这对 GCC 本身应该更通用(因为您似乎使用的是 Ubuntu)。

您的问题看起来像配置错误。../VTK-build/VTK-5.6/VTK/Charts/vtkChart.h|40|error: ‘vtkContextItem’ does not name a type| 是编译器找不到 vtkContextItem.h 时发生的那种错误。上面是否有任何错误说“未找到 vtkContextItem.h”?

如果您还没有这样做,请尝试使用 CMake 来配置您的项目。一般来说,CMake 会比你自己做的更好。

于 2011-06-18T15:12:50.720 回答