Я использую настроенную установку в 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?
Я могу добавить все настройки в своем наборе, если это необходимо, но пока я их опускаю для простоты вопроса.