0
我試圖通過Makefile編譯C++代碼時遇到此錯誤。錯誤:':'令牌之前的預期初始值設定項,gcc編譯器
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
錯誤。
也許這是非常簡單的事情,但正如我所說我不知道這種語言是如何工作的。
'vtkAlgorithm.h'的內容是什麼?看到'VTK_FILTERING_EXPORT'的定義以及'class vtkAlgorithm'的聲明會很有趣。 – simonc
看起來像VTK_FILTERING_EXPORT不是#define'd,編譯器把它當作變量名。嘗試預處理源文件。 – harper
我建議您使用CMake來生成您的vtk makefile。這將處理定義,包括鏈接... – drescherjm