Qtcreator с cmake: модель кода не может проанализировать включенный файл - PullRequest
0 голосов
/ 04 июня 2019

Я использую настроенную установку в Qt Creator, которая выдает мне предупреждения в модели кода Clang. Предупреждение гласит:

Предупреждение: Модель кода не может проанализировать включенный файл, что может привести, например, к некорректному завершению кода и выделению.

compiler_gnu.h: 60: 3: ошибка: порядковый номер не определен

header.hpp: 1: 1: note: в файле из C: \ project \ src \ UDP \ header.hpp: 1: header.hpp: 11: 10: примечание: в файле, включенном из C: \ project \ src \ UDP \ header.hpp: 11: datatypes.hpp: 4: 10: примечание: в файле, включенном в C: \ project \ src \ datatypes.hpp: 4: cstdint: 145: 10: примечание: в файле, включенном в C: \ qnx700 \ target \ qnx7 \ usr \ include \ c ++ \ v1 \ cstdint: 145: stdint.h: 63: 16: примечание: в файле, включенном в C: \ Qt \ Tools \ QtCreator \ bin \ clang \ lib \ clang \ 7.0.0 \ include \ stdint.h: 63: stdint.h: 23: 10: примечание: в файле из C: \ qnx700 \ target \ qnx7 \ usr \ include \ stdint.h: 23: platform.h: 74: 42: примечание: в файле из C: \ qnx700 \ target \ qnx7 \ usr \ include \ sys \ platform.h: 74:

Я проверил compiler_gnu.h и выяснил, что определения для __LITTLEENDIAN__ и __BIGENDIAN__ не определены. Компиляция проходит хорошо, поэтому я предполагаю, что модель кода C ++ не может найти DEFINES, которые установлены в компиляторе во время компиляции.

В compiler_gnu.h:

#if !defined(__BIGENDIAN__) && !defined(__LITTLEENDIAN__)
# error Endian not defined
#endif

Я использую cmake, чтобы открыть свой проект в Qt creator 4.9.1, поэтому у меня нет доступа к файлу .pro для определения дополнительных макросов.

Вопрос: Как мне убедиться, что модель кода clang может найти определения, которые поступают из компилятора qcc?

Я могу добавить все настройки в своем наборе, если это необходимо, но пока я их опускаю для простоты вопроса.

...