开发者

SWIG error: Syntax Error in input(1)

I'm getting the Syntax Error in input(1) error for this line of code, in C when I do:

swig -python myfile.i in console.

It concerns the following code, specifically the last line of these typedefs.

typedef unsigned short WORD;    
typedef unsigned int DWORD;
typedef unsigned long long QWORD;
typedef unsigned char BYTE;     
typed开发者_JAVA百科ef unsigned int bool; //<= THIS LINE OF CODE TRIGGERS THE ERROR.

As far as I know, bool is not defined in C so I would think swig would let this go with no issue. I compiled as c in VS 2010 and it was just fine.

Mark


C does have a bool type (actually a macro) but it is a C99 feature and you have to include stdbool.h to get bool; you only have _Bool if you don't include stdbool.h.

VS2010 doesn't support C99, it only supports C89 (AFAIK) so the typedef will work fine with that.

I'd guess that something somewhere is pulling in stdbool.h and that is messing up your typedef as it will look like this:

typedef unsigned int _Bool;

when the compiler sees it and the compiler won't like that at all.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜