SWIG错误:输入中的语法错误(1)

时间:2011-06-15 18:25:16

标签: c swig

我在这行代码的输入(1)错误中遇到语法错误,在C中我这样做:

在控制台中swig -python myfile.i。

它涉及以下代码,特别是这些typedef的最后一行。

typedef unsigned short WORD;    
typedef unsigned int DWORD;
typedef unsigned long long QWORD;
typedef unsigned char BYTE;     
typedef unsigned int bool; //<= THIS LINE OF CODE TRIGGERS THE ERROR.

据我所知,bool没有在C中定义,所以我认为swig会让这个没有问题。我在VS 2010中编译为c,它很好。

标记

1 个答案:

答案 0 :(得分:2)

C确实有bool类型(实际上是一个宏),但它是C99功能,您必须包含stdbool.h才能获得bool;如果您不包含_Bool,则只有stdbool.h

VS2010不支持C99,它只支持C89(AFAIK),因此typedef可以正常使用。

我猜某个地方正在引入stdbool.h,这会弄乱你的typedef,因为它看起来像这样:

typedef unsigned int _Bool;

当编译器看到它并且编译器根本不喜欢它时。