2013-03-26 101 views
1

我试图编译是根据与猫鼬的例子所提供的的hello.c。我不断收到错误:猫鼬HELLO.C编译错误

mongoose.c:4752:27: error: '_strtoi64' was not declared in this scope 

我看着mongoose.c和_strtoi64是在上线109的定义:

#if defined(_MSC_VER) && _MSC_VER < 1300 
#define STRX(x) #x  
#define STR(x) STRX(x)  
#define __func__ __FILE__ ":" STR(__LINE__) 
#define strtoull(x, y, z) strtoul(x, y, z)  
#define strtoll(x, y, z) strtol(x, y, z)  
#else  
#define __func__ __FUNCTION__  
#define strtoull(x, y, z) _strtoui64(x, y, z)  
#define strtoll(x, y, z) _strtoi64(x, y, z)  
#endif // _MSC_VER 

我试图定义出方的定义,如果,但我得到了同样的错误。
我看到: link 但它看起来像我已经在那里这个“修复”的代码版本。

我看了一些其他的前奏猫鼬的问题,但我并没有遇到任何的问题。

在此先感谢

回答

2

我不会考虑微软的Visual C++有效的C编译器。它支持C89,它主要与C++具有子集兼容性。但是,自C89以来,又采用了两个标准:C99和C11。建议C编译器无法从1999年编译C代码是不合理的。有效的C99编译器会正确编译此代码。

总之,使用C编译器来编译C代码和C++编译器编译的C++代码。如果您需要将某些C代码链接到C++项目,请使用C编译器编译您的C代码,并使用C++链接器将其链接到C++项目。

+0

我没有使用MVC++,但你让我意识到,我是用G ++而不是GCC。谢谢! – georges 2013-03-26 14:46:05