Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

QT, C++, Linux и Vim

#cpp #linux #qt #vim


Недавно решил перейти к изучению С++ и QT (до этого изучал Си) и хотел прояснить
несколько вещей для себя. Прошу не ругать меня строго, так как я только-только начинаю:
всего-то пока скачал книгу Прата по С++, а про QT знаю только по страничке в Википедии. 

Вообщем:

1) Что нужно для программирования с помощью QT на линуксе?

2) Нужен ли для этого обязательно QTCreator?

3) Вопрос вытекает из предыдущих двух: можно ли использовать QT пользуясь vim-ом
в качестве редактора, clang-ом для компиляции и make-ом для сборки проектов?

Не то, чтобы я априори не любил IDE, но мне больше нравится другой вариант (чисто
субъективно). Программирование для меня просто хобби.
    


Ответы

Ответ 1



Что нужно для программирования с помощью QT на линуксе? Минимальный набор стандартен: компилятор, редактор, собственно Qt с его инструментами (moc, uic, qmake), хедерами и прочей dev-мишурой и, конечно, собственные знания. Кроме того желательно: Высокоуровневая система сборки с поддержкой Qt (можно и вручную писать Makefile'ы, но это дело тем менее благодарное, чем сложнее организация проекта); основные варианты: qmake, родной, требует минимального изучения, но не универсальный и не очень гибкий cmake, универсальный, требует отдельного (хотя бы минимального) изучения. Autotools — инструмент матёрых GNU'шников. Сложен. Если нет желания прописывать создание формочек в коде, а пользоваться Qt'шным генератором то крайне желателен designer. Плагины для редактора в меру своей испорченности. Для автодополнения vim/плюсов хороша будет комбинация YCM+clang+cmake. Отладчик. Если с голым gdb чувствуешь себя комфортно/готов разбираться, то его хватит. Если нет, то придётся пользоваться IDE т.к. нормального лёгкого гуя к нему не существует. Также крайне полезно стащить из kdevelop pretty-printer'ы для Qt. Нужен ли для этого обязательно QTCreator? Нет. Вопрос вытекает из предыдущих двух: можно ли использовать QT пользуясь vim-ом в качестве редактора, clang-ом для компиляции и make-ом для сборки проектов? Да. С оговорками про make.

Ответ 2



можно ли использовать QT пользуясь vim-ом в качестве редактора, clang-ом для компиляции и make-ом для сборки проектов? Да, причём спокойно. Единственное, что вам потребуется — это: заголовочные (.h) файлы, динамические библиотеки самого Qt, статические библиотеки, чтобы можно было при компоновке добавить импорты из вышеуказанных динамических библиотек. Также существует несколько утилит, необходимость в которых зависит исключительно от используемых вами возможностей Qt: moc — если у вас есть прямые или косвенные наследники от QObject, в теле которых встречаются сущности вида Q_* (Q_OBJECT, Q_INVOKABLE и т. д.), вам надо пропустить через эту утилиту .hpp-файлы с объявлением этих классов. На выходе будет дополнительный .cpp-файл, который надо скормить компоновщику вместе с остальными. rcc — если у вас есть файлы ресурсов (.rc), то их тоже надо преобразовать в .cpp с помощью этой утилиты. uic — всё то же самое, только для файлов Qt Designer (.ui). Это, по сути, необходимый минимум для использования Qt. Всё остальное — лишь упрощающая жизнь обвязка поверх этой базы. То есть вы можете спокойно пользоваться make, вызывая все эти утилиты из Makefile вручную. Например так: # * win_main.o — получен из win_main.cpp # * win_main_ui.o — получен из win_main.ui your_app: win_main.o win_main_ui.o # Вызов компоновщика %.o: %.cpp # Вызов компилятора %_ui.cpp: %.ui uic -o "$@" $^

Комментариев нет:

Отправить комментарий