我遇到了一个奇怪的错误,试图编译我使用VTK的MFC项目。
我在Windows 10的VS2008项目中使用VTK 6.1。
当编译为32位时,项目工作正常,VTK 6.1编译为32位。当我尝试编译64位的项目(以及64位的VTK)时,我收到以下错误:
1>MainFrm.cpp
1>c:\program files\vtk\include\vtk-6.1\vtkDataArrayTemplate.txx(478) : error C2589: '(' : illegal token on right side of '::'
1> c:\program files\vtk\include\vtk-6.1\vtkDataArrayTemplate.txx(454) : while compiling class template member function 'void vtkDataArrayTemplate<T>::InsertTuples(vtkIdList *,vtkIdList *,vtkAbstractArray *)'
1> with
1> [
1> T=unsigned char
1> ]
1> c:\program files\vtk\include\vtk-6.1\vtkUnsignedCharArray.h(41) : see reference to class template instantiation 'vtkDataArrayTemplate<T>' being compiled
1> with
1> [
1> T=unsigned char
1> ]
1>c:\program files\vtk\include\vtk-6.1\vtkDataArrayTemplate.txx(478) : error C2059: syntax error : '::'
1>c:\program files\vtk\include\vtk-6.1\vtkDataArrayTemplate.txx(478) : error C2589: '(' : illegal token on right side of '::'
1> c:\program files\vtk\include\vtk-6.1\vtkDataArrayTemplate.txx(454) : while compiling class template member function 'void vtkDataArrayTemplate<T>::InsertTuples(vtkIdList *,vtkIdList *,vtkAbstractArray *)'
1> with
1> [
1> T=int
1> ]
1> c:\program files\vtk\include\vtk-6.1\vtkIntArray.h(41) : see reference to class template instantiation 'vtkDataArrayTemplate<T>' being compiled
1> with
1> [
1> T=int
1> ]
1>c:\program files\vtk\include\vtk-6.1\vtkDataArrayTemplate.txx(478) : error C2059: syntax error : '::'
您是否遇到过此错误?你能告诉我这个奇怪错误的原因是什么吗?我该如何解决这个问题?