C++ vtkTypeTraits.h错误:";类型long的大小不是4或8字节。”;
我在Visual Studio 2013中使用VTK 7.1.0(版本x64)编译项目时遇到问题 当我构建项目时,我在vtkTypeTraits.h文件中得到以下错误: 错误71错误C1189:#错误:“中的Type long不是4或8字节 大小。“..\vtk-7.1.0\common\core\vtkTypeTraits.h 115 1 与这些行对应的代码为:C++ vtkTypeTraits.h错误:";类型long的大小不是4或8字节。”;,c++,visual-studio-2013,vtk,C++,Visual Studio 2013,Vtk,我在Visual Studio 2013中使用VTK 7.1.0(版本x64)编译项目时遇到问题 当我构建项目时,我在vtkTypeTraits.h文件中得到以下错误: 错误71错误C1189:#错误:“中的Type long不是4或8字节 大小。“..\vtk-7.1.0\common\core\vtkTypeTraits.h 115 1 与这些行对应的代码为: #ifndef vtkTypeTraits_h #define vtkTypeTraits_h #include "vtkSyst
#ifndef vtkTypeTraits_h
#define vtkTypeTraits_h
#include "vtkSystemIncludes.h"
#include "vtkType.h"
............
// Define traits for long types.
#define VTK_TYPE_NAME_LONG long
#define VTK_TYPE_NAME_UNSIGNED_LONG unsigned long
#if VTK_SIZEOF_LONG == 4
# define VTK_TYPE_SIZED_LONG INT32
# define VTK_TYPE_SIZED_UNSIGNED_LONG UINT32
VTK_TYPE_TRAITS(long, LONG, 1, Int32, long, "%ld");
VTK_TYPE_TRAITS(unsigned long, UNSIGNED_LONG, 0, UInt32, unsigned long, "%lu");
#elif VTK_SIZEOF_LONG == 8
# define VTK_TYPE_SIZED_LONG INT64
# define VTK_TYPE_SIZED_UNSIGNED_LONG UINT64
VTK_TYPE_TRAITS(long, LONG, 1, Int64, long, "%ld");
VTK_TYPE_TRAITS(unsigned long, UNSIGNED_LONG, 0, UInt64, unsigned long, "%lu");
#else
# error "Type long is not 4 or 8 bytes in size."
#endif
你能帮帮我吗 看起来
VTK_size of_LONG
不是\define
d。
您不能将其定义为#define VTK\u SIZEOF\u LONG SIZEOF(LONG)
,因为在预处理期间不会计算SIZEOF()
我希望您需要#包含一个主配置文件,该文件定义了VTK平台的此宏和任何其他(大小)宏
),以便有条件地正确编译自己
在任何现代平台上,这可能是4或8,正如所暗示的那样。你能找出VTK\u SIZEOF\u LONG
实际上是什么吗?不,我不能。当我试图显示它的值时,我什么也没有得到。听起来好像你没有拉入vtkType.h
。您是否可以编辑您的问题以包含--或至少显示您的#include
语句。可能是构建设置造成的VTK_SIZEOF_LONG
应定义为KWIML_ABI_SIZEOF_LONG
。KWIML库看起来有一些自动头生成正在进行。我真正能建议的就是检查是否包含了'Common/Core/vtkType.h'
,然后按照从那里到vtk_kwiml.h
@djgandy的链条进行操作,谢谢您的帮助。我还有#include
dvtk_kwiml.h
文件,以及abi.h
和int.h
文件,但错误仍然是一样的。感谢您的帮助!除了vtkType.h之外,您知道有任何包含SIZEOF宏的文件吗?@MariaTsourma如果您查看vtkType.h,您会发现这些值是根据其他值定义的,这些值会返回到abi.h
abi.h
查看一些平台#定义您可能需要在项目中定义或在命令行中提供的平台,以便选择正确的定义。。。。很抱歉再次询问,我已经包括了vtkType.h
和abi.h',以及vtk_kwiml.h',以防我遗漏了什么。问题还是一样。我是否对#include
做了一些错误的事情?