Я часто сталкивался с этой проблемой. Я могу воспроизвести его на своем компьютере прямо сейчас (Mac OS).
Похоже, что QtCreator должен иметь проект для правильной обработки анализа путей GCC (поверх путей каркасов Qt).
Процесс, используемый Qt для поиска заголовков, заключается в том, что он запускает GCC (или ваш компилятор в Windows) со специальными аргументами, которые заставляют его выводить пути, по которым компилятор находит свои заголовки. НО , чтобы сделать это, у него должен быть проект, связанный с вашими файлами, потому что он использует этот проект, чтобы определить, какой набор инструментов использовать, таким образом, где находится GCC.
Таким образом, ответ таков: создайте проект, всегда , чтобы использовать синтаксический анализ.
Обратите внимание, что очень важно, чтобы при создании этого проекта вы определяли, какую версию Qt SDK и цепочку инструментов вы будете использовать, в противном случае нажатие клавиши управления синтаксисом не будет работать.
Возможно, вы найдете несколько интересных способов использования файла проекта Qt, хотя вы не используете Qt SDK или не используете Creator для создания вашего проекта. Смотрите ответ на аналогичный вопрос здесь: https://stackoverflow.com/a/5817226/389405
Обратите внимание, что я лично использую этот метод с файлом .pro
, который просто перечисляет все подкаталоги моего проекта, и со всеми отключенными сочетаниями клавиш для сборки, так что я использую только Qt Creator в качестве редактора. Подсветка / связывание синтаксиса потрясающе и исключительно быстро, намного, намного быстрее, чем Eclipse!
Для этого просто введите qmake -pro
в каталоге вашего проекта. Это создаст файл [DIR].pro
, который вы можете удалить в любое время.
Год назад я исправил ошибку в аспекте этого синтаксического анализа, который меня беспокоил: https://bugreports.qt.io/browse/QTCREATORBUG-4846, причина в том, что используемый мной компилятор выводит свои данные на французском, а не на английском языке. Они исправили код в 2.4, но он мог быть специфичным для Unix (см. Комментарии к проблеме для получения дополнительной информации), поэтому вы, вероятно, захотите проверить, может ли эта проблема быть применена к вашему делу.
Если ваша проблема сохраняется даже после создания проекта для вашей редакции, обязательно укажите ее на qt-project.org!
В противном случае единственное решение, которое я вижу, - это изменение исходного кода QtCreator. Вы можете найти в их последнем сообщении некоторую информацию о том, как внести свой вклад здесь: https://blog.qt.io/blog/2012/03/15/qt-creator-2-5-beta/ (и попробовать их новую бета-версию, которая поддерживает C ++ lambdas ).