Почему QT использует свое собственное, делают инструмент, qmake?

Во-первых, сбросьте все предыдущие предпочтения представления папки путем удаления ~/.local/share/gvfs-metadata (источник)

, Затем, открывают Nautilus и выбирают Edit -> Preferences -> Views (tab) -> View new folders using и изменяются на List View:

Nautilus prefs dialogue

54
задан Trojan 23 December 2013 в 15:22
поделиться

5 ответов

Qt использует qmake для прозрачной поддержки различных дополнений Qt, включая «moc, компилятор метаобъектов» (который предоставляет сигналы и слоты), «uic, компилятор пользовательского интерфейса» (который создает файлы заголовков из файлов конструктора .ui), «rcc, компилятор ресурсов» (который компилирует ресурсы).

Ничто не мешает вам использовать любую систему сборки, которую вы хотите. однако это намного больше работы. Например, вам нужно запустить «moc» для каждого файла заголовка, содержащего класс, имеющий сигналы или слоты. В общем, это не рекомендуется, особенно для тех, кто только начинает использовать Qt.

QMake не вызывает g ++ / gcc напрямую. Вместо, qmake создает собственные файлы make на вашей текущей платформе. Под Linux он создает стандартные файлы make GNU, под Windows он может генерировать файлы make Visual Studio, под Mac OS X он может генерировать файлы проекта XCode. Затем вы вызываете свою собственную систему сборки (либо GNU make, либо MS NMake, либо xcodebuild или что-то еще), которая вызывает ваш собственный компилятор (g ++ / gcc или что-то еще).

56
ответ дан 7 November 2019 в 08:04
поделиться

Для поддержки своей системы сигналов / слотов Qt полагается на специальный препроцессор и компилятор, которые генерируют промежуточные объекты, которые выполняют большую часть обработки. Они называют это компилятором метаобъектов или MOC .

Подробнее см. Документация Qt 5: Использование компилятора метаобъектов .

] MOC (вместе с парой других промежуточных инструментов) работает вместе с qmake ; инструмент автоматизации сборки, который создает файлы Makefile в вашем собственном формате (VC ++, g ++ и т. д.), которые собирают промежуточные файлы, созданные MOC, а также все ваши исходные файлы в окончательный исполняемый файл.

6
ответ дан 7 November 2019 в 08:04
поделиться

qmake разработан, чтобы быть кроссплатформенным и гибким. Он может быть совместим с Microsoft Visual Studio и Xcode.

Вы можете найти все это в Руководстве по qmake .

qmake генерирует Makefile на основе информация в файле проекта. Файлы проекта создаются разработчика, и обычно просты, но более сложные файлы проекта могут создаваться для сложных проектов. qmake содержит дополнительные функции для поддержка разработки с Qt, автоматически включая правила сборки для moc и uic. qmake также может создавать проекты для Microsoft Visual студия без необходимости разработчика для изменения файла проекта.

5
ответ дан 7 November 2019 в 08:04
поделиться

По порядку

а) потому что он делает многое за вас за кулисами

б) да, см. А)

в) да, он вызывает g ++ (но может поддержите другие компиляторы, если они у вас есть)

3
ответ дан 7 November 2019 в 08:04
поделиться

На мой взгляд, qmake хорош для простых проектов (можно просто qmake -project; qmake; make), но ужасен и недостаточно документирован для больших проектов. В частности, функция настройки qmake - это шутка.

Лучшие системы сборки, которые я знаю, - это CMake и Waf (на основе Python). В моих собственных Qt-проектах я использую CMake для выполнения этой работы. Так же, как ребята из KDE:)

8
ответ дан 7 November 2019 в 08:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: