繁体   English   中英

VC ++ 10抱怨很多类型未定义,C99

[英]VC++ 10 complains that a lot of types are not defined, C99

我正在尝试编译一个我下载的开源项目,该项目显然是用VC ++ 7.1编写的。

经历了很多麻烦之后,作为C ++的新手,我设法为该项目使用的STLPort下载并修复了包含内容。 但是,我收到类似15,000个错误的消息,抱怨某些类型未定义。 其中一些是:

u_int32_t
int64_t
u_int16_t
u_int8_t

经过一番谷歌搜索后,我发现它们已添加到C99中。 我之前的其他开发人员已设法使用VC进行编译。 我正在使用VC 10。

该项目已经死了几年了,所以我无法联系作者。

Visual C ++编译器不支持大多数C99功能。

如果要使用标准的固定宽度整数类型,则需要确保包含<cstdint>并使用std::限定它们的质量,或者包含<stdint.h>

标准的固定宽度无符号类型名称是uint32_tuint16_tuint8_t (即, uint之间没有_ )。 当然,您可以根据需要键入自己的类型(虽然您应该对新代码使用标准的typedef,但是您可能需要自己键入自己的typedef才能与遗留代码进行互操作)。

在Visual Studio中为自己定义这些类型非常容易,因为它们提供了__int(bitsize)功能。

typedef __int64 int64_t;
typedef unsigned __int32 u_int32_t;
typedef unsigned __int16 u_int16_t;
typedef unsigned __int8 u_int8_t;

您需要安装兼容的C99编译器和库,并将VC ++ 10环境指向这些库。

但是我怀疑找到构建/制作文件并使用它们的更简单方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM