Я получаю «неизвестное имя типа« uint8_t », а другим - с помощью C в MinGW. Любые идеи, как это решить?неизвестный тип имя 'uint8_t', MinGW
ответ
Попробуйте включить stdint.h
или inttypes.h
.
Я все еще получаю сообщение об ошибке для uint32_t, но в том числе stdint.h действительно решает остальные. – RobotRock
Чтобы использовать псевдоним типа uint8_t
, вы должны включить стандартный заголовок stdint.h
.
#include
stdint.h
ПЕРЕД ВАМИ #include
любые другие интерфейсы библиотеки, в которых это нуждается.
Пример:
Моя библиотека использует LCD uint8_t типы. Я написал свою библиотеку с интерфейсом (Display.h
) и реализацией (Display.c
)
В display.c у меня есть следующие варианты.
#include <stdint.h>
#include <string.h>
#include <avr/io.h>
#include <Display.h>
#include <GlobalTime.h>
И это работает.
Однако, если я переставить их так:
#include <string.h>
#include <avr/io.h>
#include <Display.h>
#include <GlobalTime.h>
#include <stdint.h>
Я получаю ошибку вы описываете. Это связано с тем, что Display.h
нуждается в вещах от stdint.h
, но не может получить к нему доступ, потому что эта информация скомпилирована ПОСЛЕ отображения Display.h.
Итак, переместите stdint.h
над любой библиотекой, которая в ней нуждается, и вы больше не должны получать ошибку.
Это просто плохой дизайн, 'Display.h' должен содержать' #include
Это немного неполно. Можете ли вы расширить или предоставить ссылку на то, почему include не должен находиться в исходном файле? Мои включенные не предоставляют типы, необходимые для функций, предоставляемых библиотекой, поэтому я не думаю, что они должны быть в файле заголовка. – LanchPad
Как только вы используете что-либо из любого заголовка в любом файле, вы просто включаете этот файл в свой источник. Я не сказал, что вы должны включить все файлы в заголовок (ну, я сделал, но отредактировал задолго до того, как вы ответили). В своем комментарии я только указываю, как плохой дизайн должен включать файл перед другим, чтобы заставить его работать. Это не сэкономит вам какое-либо место или что-то еще, потому что вам нужно будет включать это каждый раз перед вашим файлом. Если ваш 'Display.h' нуждается в' stdint.h', это не нормально, если вы не включите его прямо в него. – Jerska
- 1. неизвестный тип имя 'uint32_t', MinGW
- 2. Неизвестный тип - DEV_BROADCAST_DEVICEINTERFACE в MINGW
- 3. theos - Неизвестный тип имя
- 4. Неизвестный тип Имя 'CMStepCounter'
- 5. Неизвестный тип имя AFJSONRequestOperation
- 6. неизвестный тип имя `socklen_t`
- 7. неизвестный тип имя '__priority_which_t'
- 8. протокол буфер неизвестный тип имя ошибка?
- 9. Переменная ошибка: неизвестный тип имя
- 10. Металл: неизвестный тип имя float4
- 11. Typedef struct неизвестный тип имя
- 12. C++ ошибка: неизвестный тип имя
- 13. c: неизвестный тип name
- 14. MinGW GCC: «Неизвестный тип символа преобразования« h »(snprintf)
- 15. Класс не читается ... Неизвестный тип имя
- 16. Eclipse CDT MySql неизвестный тип имя 'ulong'
- 17. неизвестный тип name 'class'
- 18. rake «неизвестный тип» ошибка
- 19. Неизвестный тип абстрактной схемы
- 20. Unmarshalling неизвестный тип кода
- 21. Неизвестный тип этикетки sklearn
- 22. Неизвестный тип объекта
- 23. «Emacs»: неизвестный тип терминала
- 24. Неизвестный C# тип
- 25. C++ возвращает неизвестный тип
- 26. Deserialize Неизвестный тип
- 27. Неизвестный тип компилятора typeRoots
- 28. Неизвестный тип имени 'UIBackgroundFetchResult'
- 29. Неизвестный тип заголовка
- 30. Неизвестный тип в строении
Пожалуйста, разместите код. –
Вы указали 'stdint.h'? – Necrolis