'uint32_t'标识符未找到错误

时间:2011-03-02 02:29:42

标签: c++ c visual-c++

我正在将代码从Linux C移植到Visual C ++ for windows。

Visual C ++不知道#include <stdint.h>所以我对它进行了评论。

后来,我发现了很多'uint32_t': identifier not found错误。怎么解决?

7 个答案:

答案 0 :(得分:94)

此类型在C头<stdint.h>中定义,它是C ++ 11标准的一部分,但在C ++ 03中不是标准。根据{{​​3}},直到VS2010才会附带Visual Studio。

与此同时,您可以通过将typedef映射到{C}预期的类型typedef __int32 int32_t; typedef unsigned __int32 uint32_t; /* ... etc. ... */ 来伪造您自己的标头版本。例如:

{{1}}

希望这有帮助!

答案 1 :(得分:70)

你可以#include <cstdint>。它是自2011年以来C ++标准的一部分。

答案 2 :(得分:7)

BoostConfig为那些本身不提供它们的工具集提供这些typedef。此特定功能的文档位于:Standard Integer Types

答案 3 :(得分:6)

我有同样的错误,它修复了包括在文件中的以下

#include <stdint.h>

在文件的开头。

答案 4 :(得分:3)

msinttypes project page有一个实现 - “这个项目填补了Microsoft Visual Studio中缺少stdint.h和inttypes.h”。

我没有这方面的实践经验,但是我已经看到其他人推荐了它。

答案 5 :(得分:2)

在Windows上我通常使用Windows类型。要使用它,您必须包含<Windows.h>

在这种情况下,uint32_t是UINT32或只是UINT。

所有类型定义均在此处:http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx

答案 6 :(得分:0)

我必须在VS2010中运行项目,我无法在代码中引入任何修改。我的解决方案是安装vS2013并在VS2010中安装VC ++目录 - &gt; IncludeDirectories到Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ include。然后我的项目编译没有任何问题。