Видимость макроса в голом проекте CubeMx & Atollic - PullRequest
0 голосов
/ 11 июня 2018

Я создал простой проект CubeMx с нуля и открыл его в Atollic TrueStudio.Конечно, его компиляция выходит успешно.Я просматривал каталоги и файлы проектов, чтобы лучше понять структуру при создании новых проектов.

В настоящее время я использую плату STM32, оснащенную процессором CortexM4, и программирую на C с компилятором GCC.В проекте я нашел заголовочный файл с именем core_cm4.h , который является охватом объявления макросов, то есть # define операторов.Здесь возникает странная вещь: когда я пытаюсь использовать эти макросы в файле main.c (и в любом другом новом файле), они все доступны и распознаются, но следующие:

#elif defined ( __GNUC__ )
   #define __ASM            __asm          /*!< asm keyword for GNU Compiler */
   #define __INLINE         inline         /*!< inline keyword for GNU Compiler */
   #define __STATIC_INLINE  static inline

Символ __GNUC__ определен, и компилятор не сообщает о каких-либо предупреждениях или ошибках.Однако среда IDE не предлагает эти макросы в раскрывающихся менюù и сигнализирует об этом слове как синтаксическая ошибка .

Я пытался переместить объявление в другое место в пределах core_cm4.h файл неудачен.Я пропускаю что-то важное?

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Согласно вашему ответу, проект успешно компилируется:

Пожалуйста, попробуйте «обновить все файлы», а затем «пересобрать» индекс.

(Вы могли найти эти команды по правунажав на название проекта в проводнике проекта) enter image description here

0 голосов
/ 12 июня 2018

Вы сказали, что символ __GNU__ определен, но #elif проверяет на __GNUC__, что не одно и то же.Это опечатка с вашей стороны?

...