c++ 未找到'uint32_t'标识符错误

dpiehjr4  于 2022-12-24  发布在  其他
关注(0)|答案(7)|浏览(1073)

我正在将Linux C的代码移植到Windows的Visual C++。
Visual C++不知道#include <stdint.h>,所以我将其注解掉。
后来发现很多那种'uint32_t': identifier not found错误,怎么解决呢?

g52tjvyc

g52tjvyc1#

此类型在C标头<stdint.h>中定义,该标头是C11标准的一部分,但不是C03中的标准。根据the Wikipedia page on the header,它直到VS2010才随Visual Studio提供。
与此同时,您可以添加typedef来将Microsoft's custom integer typesMap到C预期的类型,从而伪造您自己版本的头文件。例如:

typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
zpjtge22

zpjtge222#

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

xv8emn3q

xv8emn3q3#

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

#include <stdint.h>

在你档案的开头。

uxhixvfz

uxhixvfz4#

BoostConfig为那些本机未提供typedef的工具集提供了这些typedef。此特定功能的文档位于以下位置:Standard Integer Types

g6ll5ycj

g6ll5ycj5#

msinttypes project page上有一个可用的实现-“这个项目填补了Microsoft Visual Studio中stdint. h和inttypes. h的缺失”。
我没有这种实现的经验,但我看到过其他人在SO上推荐它。

368yc8dk

368yc8dk6#

在Windows上,我通常使用windows类型。要使用它,你必须包含<Windows.h>
在这种情况下,uint32_t为UINT32或仅为UINT。
所有类型定义如下:http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx

cygmwpex

cygmwpex7#

我不得不在VS2010中运行项目,我不能在代码中引入任何修改。我的解决方案是安装VS 2013,并在VS2010中指向VC++目录-〉IncludeDirectories to Program Files(x86)\Microsoft Visual Studio 12.0\VC\include。然后我的项目编译没有任何问题。

相关问题