我正在尝试编译使用mongoose在示例下提供的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
我尝试将if定义为if但是我得到了同样的错误 我看见: link 但它看起来像我已经在那里“修复”的代码版本。
我看了一些其他的介绍猫鼬问题,但我没有遇到任何问题。
提前致谢
答案 0 :(得分:2)
我不认为Microsoft Visual C ++是一个有效的C编译器。它支持C89,它主要与C ++具有子集兼容性。然而,自C89以来,又采用了两个标准:C99和C11。建议C编译器不能从1999编译C代码是不合理的。有效的C99编译器将正确编译此代码。
简而言之,使用C编译器编译C代码和C ++编译器来编译C ++代码。如果需要将某些C代码链接到C ++项目,请使用C编译器编译C代码,并使用C ++链接器将其链接到C ++项目。