Как автоматизировать Qt moc?
Вопрос
Мне нужно запустить следующие команды из командной строки Qt: qmake -project
затем make
и это дает мне папку отладки с файлом Moc.
Как ни странно, это единственный способ, которым мой компьютер сгенерирует moc_.cpp
файл.
Итак, как я могу автоматизировать выполнение этих команд, чтобы мне больше не приходилось использовать эти команды?
Решение
Вы не должны бежать qmake -project
много раз.А -project
Эта опция предназначена для предоставления вам файла шаблона проекта для редактирования.Эквивалентом того, что вы делаете в IDE, будет создание «нового проекта» каждый раз, когда вы хотите построить.После того, как у вас есть первоначальный проект, вам следует редактировать его вручную, добавлять файлы при появлении новых файлов и т. д.Если какой-либо файл заголовка изменится, сгенерированный Makefile заметит это и вызовет moc для автоматического обновления файла moc_*.cpp.Так:
- Бегать
qmake -project
когда вы начинаете работать над проектом. - Бегать
qmake
когда вы хотите создавать файлы Makefile. - Бегать
make
когда вы хотите построить проект.
Другие советы
Я думаю, у вас есть два варианта.
вызовите qmake из родительского процесса make и выполните многоуровневую сборку.(«Рекурсивное выполнение».)
напрямую запускайте компилятор метаобъекта из правил вашего make-файла
Если второе, то эта страница на используя метаобъект компилятор может помочь.