it-swarm.com.ru

Ошибка: идентификатор uint32_t не найден

Я портирую код с Linux C на Visual C++ для Windows.

Visual C++ не знает #include <stdint.h>, поэтому я закомментировал это.

Позже я обнаружил много этих ошибок 'uint32_t': identifier not found. Как это можно решить?

74
kevin

Этот тип определен в заголовке C <stdint.h>, который является частью стандарта C++ 11, но не является стандартом в C++ 03. Согласно страница Википедии в заголовке , она не поставлялась с Visual Studio до VS2010.

Тем временем вы, вероятно, могли бы подделать свою собственную версию заголовка, добавив typedefs, которые отображают пользовательские целочисленные типы Microsoft , к типам, ожидаемым C. Например:

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

Надеюсь это поможет!

92
templatetypedef

Вы можете #include <cstdint>. Это часть C++ - стандарт с 2011 года. 

65
Tigerle

Boost . Config предлагает эти определения типов для наборов инструментов, которые не предоставляют их изначально. Документация для этой специфической функциональности находится здесь: Стандартные целочисленные типы

7
ildjarn

У меня такая же ошибка, и она исправлена ​​в том числе в файле

#include <stdint.h>

в начале вашего файла.

6
Nacho Barreto

На странице проекта msinttypes доступна реализация - "Этот проект заполняет отсутствие stdint.h и inttypes.h в Microsoft Visual Studio". 

У меня нет опыта с этой реализацией, но я видел ее рекомендованной другими на SO.

3
Brandon Leiran

В Windows я обычно использую типы окон. Чтобы использовать его, вы должны включить <Windows.h>.

В этом случае uint32_t - это UINT32 или просто UINT.

Все определения типов находятся здесь: http://msdn.Microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx

2
ST3

Мне пришлось запустить проект в VS2010, и я не мог внести какие-либо изменения в код. Мое решение состояло в том, чтобы установить vS2013 и в VS2010 указать каталоги VC++-> Включить каталоги в файлы программ (x86)\Microsoft Visual Studio 12.0\VC\include. Тогда мой проект скомпилирован без проблем.

0
Darqer