zed ide не "видит" заголовочные файлы Qt6

Хочется работать с Qt6 в zed ide, но автокомплиты невозможны т.к. zed просто не "видит" Qt. Например, если навести указатель на #include (который подсвечен красной волнистой линией), то всплывающее сообщение напишет: clang: 'QWidget' file not found. chatGpt советует указать clang директорию этой библиотеки и я даже скармливал предложенный им код своей системе (MacOs) чтобы clang таки "понял" с чем ему работать, но все безуспешно! Приходится печатать в QtCreator, что меня не устраивает. Я новичок в этих делах и не до конца (даже не до середины) понимаю в includePath ли дело или переменных среды, просто только про это генерировал ответы chatGpt.


Ответы (1 шт):

Автор решения: Swift - Friday Pie

ChatGPT ухватил где-то что-то но контекста он понять не может. Если используется цепочка qmake\make пути к заголовкам Qt не прописаны. Когда код компилируется, используются пути вписанные в Makefile утилитой qmake на основании того, что написано в CONFIG и что за аргументы ей были даны, т.к. на системе может быть установлено много разных версий qt, а набор заголовков зависит он выбранных компонент.

Возьмите созданный makefile. В начале файла будет переменная со аргументами передаваемыми компилятору и всеми путями к заголовкам (ключ -I). путей может быть несколько, к каждому модулю свой. Набор может расширяться при добавлении компонентов Qt.

Вот оттуда их и можно выудить и добавить их как свои пути для редактора. Ни в коем случае не через переменные окружения, если другого пути нет, этот редактор не пригоден для работы с Qt (может есть расширение для Qt?). Так же следует добавить пути для создаваемых файлов - результатов работы ui и moc.

Еще очень неприятная особенность - заголовки Qt агрессивно использует макросы. Некоторые системы анализа кода не могут с ними справиться, даже у MS ItelliSense проблемы. Отсутствие (еще не созданных) генерируемых заголовков и сложные макросы, полагающиеся на их существование блокируют анализ кода.

→ Ссылка