0

当我尝试通过 Makefile 编译 c++ 代码时遇到此错误。

error: expected initializer before ':' token

我已经检查了我系统编译器的兼容性我还检查了路径等。我还做了一些测试;例如在第二次声明类之后添加分号但没有用。我对 c++ 几乎没有经验,脚本甚至不是我写的;它是 vtk 库(可视化工具包)的一部分。生成错误的部分脚本是:

#ifndef __vtkProcessObject_h
#define __vtkProcessObject_h

#include "vtkAlgorithm.h"

class vtkDataObject;

class VTK_FILTERING_EXPORT vtkProcessObject : public vtkAlgorithm
{
public:
   vtkTypeRevisionMacro(vtkProcessObject,vtkAlgorithm);
   void PrintSelf(ostream& os, vtkIndent indent);

我得到错误line 8

可能这真的很简单,但正如我所说,我不知道这种语言是如何工作的。

4

1 回答 1

0

VTK_FILTERING_EXPORT 宏在标头中定义,主要用于 Windows 和/或 GCC 符号可见性。您没有提及您正在编译的 VTK 版本,但使用 CMake 生成 Makefile 将确保设置正确的包含路径。如果这是 Linux,并且 GCC 可见性功能尚未激活,您可以将宏定义为空,但我怀疑一旦您在编译中超过了这一点,您会遇到许多其他问题。

于 2013-11-02T04:08:39.207 回答