Question

Je viens de commencer à utiliser Qt et a remarqué qu'il utilise son propre outil faire , qmake .

  • Pourquoi Qt utilise son propre outil faire?
  • Y at-il quelque chose de spécial qui l'empêche d'utiliser un outil standard de faire?
  • Est-ce que qmake appelez le GCC compilateur C ++?
Était-ce utile?

La solution

Qt qmake utilise pour soutenir de manière transparente différents addons Qt, y compris « moc, le compilateur méta-objet » (qui fournit des signaux et slots), « uic, le compilateur ui » (qui crée des fichiers d'en-tête des fichiers de créateurs .ui), "CCCD, le compilateur de ressources" (qui compile des ressources).

Il n'y a rien à vous arrêter d'utiliser un système de construction que vous voulez. cependant, il est beaucoup plus de travail. Par exemple, vous devez exécuter « moc » sur chaque fichier d'en-tête qui contient une classe qui a des signaux ou des fentes. En général, il est recommandé, surtout pour quelqu'un qui vient de commencer à utiliser Qt.

QMake ne remet pas g ++ / gcc directement. Au lieu de cela, qmake crée des fichiers make natifs sur votre plate-forme actuelle. Sous Linux, il crée des fichiers standards GNU make, sous Windows, il peut générer visual studio rendre les fichiers, sous Mac OS X, il peut générer des fichiers de projet Xcode. Vous invoquez alors votre système de compilation native (soit GNU make, ou MS NMake, ou xcodebuild ou autre), qui fera appel à votre compilateur natif (g ++ / gcc ou autre).

Autres conseils

Dans mon opinnion qmake est cool pour des projets simples (vous pouvez simplement qmake -project, qmake, faire), mais horrible et pas assez documentés pour les projets largish. En particulier, la fonctionnalité de configuration de qmake est une blague.

Les meilleurs systèmes de construction que je connais sont CMake et Waf (Python à base). Dans mes propres Qt-projets que j'utilise CMake pour faire le travail. Tout comme KDE-gars:)

Pour soutenir son système de signal / Qt fente repose sur un préprocesseur spécial et un compilateur qui génère des objets intermédiaires qui font l'essentiel du traitement. Ils appellent cela le Compiler Meta-Object ou MOC .

Voir Qt 5 Documentation: Utilisation du compilateur Meta-Object pour plus de détails .

Le MOC (avec une ou deux autres outils intermédiaires) fonctionne en conjonction avec qmake; un outil de build d'automatisation qui produit Makefile dans le format natif (VC ++, g ++, etc.) qui construisent les fichiers intermédiaires générés par le MOC, ainsi que tous vos fichiers source dans l'exécutable final.

qmake est conçue pour être plate-forme transversale et flexible. Il peut compatible avec Microsoft Visual Studio et Xcode.

Vous pouvez trouver tout cela dans le qmake Manuel .

  

qmake génère un Makefile basé sur   les informations contenues dans un fichier de projet.   Les fichiers de projet sont créés par la   développeur, et sont généralement simples, mais   fichiers de projet plus sophistiqués peuvent   être créé pour des projets complexes. qmake   contient des fonctionnalités supplémentaires   soutenir le développement avec Qt,   y compris automatiquement construire des règles   pour moc et uic. qmake peut aussi   générer des projets pour Microsoft Visual   studio sans nécessiter le développeur   de modifier le fichier de projet.

a) parce qu'il fait beaucoup dans les coulisses pour vous

b) oui, voir a)

c) oui, il fait appel g ++ (mais peut prendre en charge d'autres compilateurs si vous en avez)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top