Как использовать Qt Creator в качестве умного редактора? - PullRequest
0 голосов
/ 11 сентября 2018

Я рассчитываю использовать Qt Creator 4.7 в качестве интеллектуального редактора, который помогает перемещаться / реорганизовывать код и своевременно обнаруживать ошибки.Я не хочу установить для него построить проекта - я хочу только редактировать этого.

Возможно ли это?Если да, то как?


Более конкретно, мне нужно сообщить следующую информацию в Qt Creator и не иметь дело с чем-либо связанным со сборкой:

  1. Какие у меня исходные файлы и на каком языке (C, C ++ 98, C ++ 11 и т. Д.)
  2. Расположение других включаемых файлов (например, опция компилятора -I)
  3. Любые специальные #define s, которые должен принимать препроцессор

Что я пробовал:

  • Я могу создать универсальныйпроект, используя Файл -> Новый файл или проект -> Импортировать существующий проект.Это позволяет мне указывать 2. и 3. выше, но не 1. В частности, он 4.7.0 рассматривает все файлы как C ++ 98 и не позволит мне использовать более новый стандарт.Конфигурация модели кода больше не принимает параметр -std=c++11.У меня сложилось впечатление, что в последнее время общей поддержке проекта уделялось мало внимания, и она больше не рекомендуется.

  • Я попытался настроить проект qmake, но, похоже, для этого требуется полная установка Qt.Я хочу избежать этого, так как я не использую Qt.

  • Я посмотрел, как использовать проект на основе cmake, но, похоже, для этого требуется установить конкретную цель сборки.Действительно ли это необходимо, или есть способ использовать проект на основе cmake для передачи только необходимой информации в Qt Creator, а не настроить сборку?Предполагается редактирование библиотеки только для заголовков, без включения каких-либо .cpp файлов.Опять же, кажется, что проект на основе cmake не является хорошим вариантом, так как самой целью cmake является автоматизация сборки, в то время как все, что мне нужно, это передать важную информацию в мою среду IDE.


Мотивация: Я часто работаю над библиотекой, которая используется для взаимодействия с Mathematica .Он имеет свою собственную систему сборки на основе Mathematica.Некоторые необходимые .cpp источники автоматически генерируются Mathematica.Таким образом, я не могу полностью переключиться на что-то вроде cmake, и это не принесет мне никакой пользы (но это заняло бы значительное количество времени на обучение).Я просто хочу иметь возможность использовать Qt Creator в качестве интеллектуального редактора.

Примечание: В прошлом было возможно добавить -std=c++ в конфигурацию модели кода и обойти эту проблему.Последняя версия Creator отклоняет эту опцию.

1 Ответ

0 голосов
/ 23 сентября 2018

Qbs проекты - достаточно простая в использовании альтернатива универсальным проектам, помогающая решить эту проблему.

Преимущества Qbs перед qmake / cmake:

  • Поставляется с Qt Creator. Больше не нужно ничего устанавливать (например, все Qt)

  • Он предназначен для хорошей работы с Creator (в отличие от cmake, который представляет собой систему сборки, а не формат проекта IDE)

  • Нет необходимости добавлять явную информацию о сборке в проект Qbs. Достаточно указать, какие файлы являются частью проекта.


Начало работы:

  1. Запустите qbs-create-project в каталоге проекта для создания файла qb barebones

  2. Добавьте следующее в верхней части файла, ниже type, и при необходимости измените:

    Depends { name: "cpp" }
    
    cpp.cxxLanguageVersion: "c++11"
    
    cpp.includePaths: base.concat([
        "/your/include/path1",
        "/your/include/path2",
    ])
    cpp.defines: base.concat([
        "NDEBUG",
        "SOME_SYMBOL",
        "SYMBOL_WITH_VALUE=123",
    ])
    

Вместо файлов, добавленных qbs-creator-project, вы можете использовать

files: [ "**/*.cpp" ]

для добавления всех файлов, аналогично тому, как может выглядеть общий проект.

Спасибо Николаю Козяру за помощь в настройке всего этого!

...