Недавно решил перейти к изучению С++ и QT (до этого изучал Си) и хотел прояснить несколько вещей для себя. Прошу не ругать меня строго, так как я только-только начинаю: всего-то пока скачал книгу Прата по С++, а про QT знаю только по страничке в Википедии.
Вообщем:
1) Что нужно для программирования с помощью QT на линуксе?
2) Нужен ли для этого обязательно QTCreator?
3) Вопрос вытекает из предыдущих двух: можно ли использовать QT пользуясь vim-ом в качестве редактора, clang-ом для компиляции и make-ом для сборки проектов?
Не то, чтобы я априори не любил IDE, но мне больше нравится другой вариант (чисто субъективно). Программирование для меня просто хобби.
Что нужно для программирования с помощью QT на линуксе?
Минимальный набор стандартен: компилятор, редактор, собственно Qt с его инструментами (moc
, uic
, qmake
), хедерами и прочей dev-мишурой и, конечно, собственные знания.
Кроме того желательно:
qmake
, родной, требует минимального изучения, но не универсальный и не очень гибкийcmake
, универсальный, требует отдельного (хотя бы минимального) изучения.Autotools
— инструмент матёрых GNU'шников. Сложен. designer
.gdb
чувствуешь себя комфортно/готов разбираться, то его хватит. Если нет, то придётся пользоваться IDE т.к. нормального лёгкого гуя к нему не существует. Также крайне полезно стащить из kdevelop
pretty-printer'ы для Qt.Нужен ли для этого обязательно QTCreator?
Нет.
Вопрос вытекает из предыдущих двух: можно ли использовать QT пользуясь vim-ом в качестве редактора, clang-ом для компиляции и make-ом для сборки проектов?
Да. С оговорками про make
.
можно ли использовать QT пользуясь vim-ом в качестве редактора, clang-ом для компиляции и make-ом для сборки проектов?
Да, причём спокойно. Единственное, что вам потребуется — это:
.h
) файлы,Также существует несколько утилит, необходимость в которых зависит исключительно от используемых вами возможностей 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 "$@" $^
Виртуальный выделенный сервер (VDS) становится отличным выбором
Помогите, пожалуйста, решить задачу по программированию в с++Разбить элементы массива на группы по 4
Неправильно сравнивает 2 массива, вместо false(-) выдает true(+)В чем проблема? (Функция помечена комментарием)
ЗдравствуйтеНасколько я знаю ОС сама выделяет память под кучу, но как тогда работать с памятью если мы незнаем сколько ее в куче?