Я использую Keil uVision4 для разработки на устройстве STM32F2.
Я пытаюсь использовать C ++, что должно быть возможно с помощью armcc (поправьте меня, если я ошибаюсь), поставляемого с набором инструментов uVision.
Но uVision отказывается принять стандартный способ включения C ++
#include <cstdint>
не работает пока
#include <stdint.h>
работает отлично.
Когда я открываю cstdint внутри uVision (щелчок правой кнопкой мыши, открытый документ), он открывает файл, но как общий файл, например, не как заголовочный файл, без причудливых цветов.
Что мне не хватает? Оба файла находятся в одной папке
C: \ Keil \ ARM \ ARMCC \ включают
и это не имеет никакого значения, заставляю ли я компилятор использовать c ++ (добавляя —cpp) или нет.
UVision просто не может принимать файлы без окончаний в качестве заголовочных файлов?
Изменить: В ответ на ответы (спасибо за ваше время!):
Сообщение об ошибке будет:
#include <cstdint> and
#include <cstdint.h>
typedef uint32_t u32;
error: #20: identifier uint32_t is undefined
в то время как
#include <stdint.h> and
#include <stdint>
typedef uint32_t u32;
and
#include <cstdint>
typedef std::uint32_t u32;
works perfectly.
который показывает, в чем проблема. Спасибо за помощь!
Какие симптомы у вас это не работает? То есть что такое сообщение об ошибке? Может быть, вам нужен только using namespace std
или префикс std :: перед всеми типами, так как cstdint
заголовок помещает свои объявления в std
Пространство имен.
Обратите внимание, что cstdint
это очень новый заголовок, и может не поддерживаться вашим компилятором. Так что, возможно, вам придется согласиться на stdint.h
, что так же хорошо.
Других решений пока нет …