Я портирую код с Linux C на Visual C ++ для Windows.
Visual C ++ не знает, #include <stdint.h>
поэтому я закомментировал это.
Позже я обнаружил много таких 'uint32_t': identifier not found
ошибок. Как это решить?
Я портирую код с Linux C на Visual C ++ для Windows.
Visual C ++ не знает, #include <stdint.h>
поэтому я закомментировал это.
Позже я обнаружил много таких 'uint32_t': identifier not found
ошибок. Как это решить?
uint32_t
и другие целочисленные типы точной ширины являются только частью C99 и C ++ 0x, поэтому в более старых компиляторах (например, Visual C ++ 2008 и ранее) их нет.
Ответы:
Этот тип определен в заголовке C, <stdint.h>
который является частью стандарта C ++ 11, но не является стандартом C ++ 03. Согласно странице Википедии в заголовке , он не поставлялся с Visual Studio до VS2010.
Тем временем вы, вероятно, могли бы подделать свою собственную версию заголовка, добавив typedef
s, которые сопоставляют настраиваемые целочисленные типы Microsoft с типами, ожидаемыми C. Например:
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
/* ... etc. ... */
Надеюсь это поможет!
__int32
.
u_int32_t
и uint32_t
не одного типа; у одного есть лишнее подчеркивание после u
. Кажется, это отдельная проблема.
У меня такая же ошибка, и она исправлена, включая в файл следующие
#include <stdint.h>
в начале вашего файла.
Boost . Config предлагает эти определения типов для наборов инструментов, которые не предоставляют их изначально. Документация для этой конкретной функции находится здесь: Стандартные целочисленные типы
На странице проекта msinttypes доступна реализация - «Этот проект восполняет отсутствие stdint.h и inttypes.h в Microsoft Visual Studio».
У меня нет опыта работы с этой реализацией, но я видел, как другие рекомендовали ее на SO.
В Windows я обычно использую типы окон. Чтобы использовать его, вы должны включить <Windows.h>
.
В этом случае uint32_t - это UINT32 или просто UINT.
Все определения типов находятся здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
Мне пришлось запустить проект в VS2010, и я не мог внести никаких изменений в код. Мое решение заключалось в том, чтобы установить vS2013 и в VS2010 указать каталоги VC ++-> IncludeDirectories to Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include. Потом мой проект скомпилировался без проблем.