Il s'agit de la commande moc-qt5 qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
moc - générer le code de prise en charge des méta-objets Qt
SYNOPSIS
moqueur [-o fichier] [-i] [-f] [-k] [-ldbg] [-nw] [-p chemin] [-q chemin] [-v] fichier
DESCRIPTION
Cette page documente le Meta Exlcusion Compilateur pour le framework d'application Qt GUI. Les moqueur
lit une ou plusieurs déclarations de classe C++ à partir d'un en-tête C++ ou d'un fichier source et génère
un fichier source C++ contenant des informations sur le méta-objet pour les classes. La source C++
fichier généré par le moqueur doit être compilé et lié à l'implémentation de la classe
(ou il peut être #inclus dans le fichier source de la classe).
Si vous utilisez qmake pour créer vos Makefiles, des règles de construction seront incluses qui appellent le moqueur
si nécessaire, vous n'aurez donc pas besoin d'utiliser le moqueur .
En bref, le système de méta-objets est une structure utilisée par Qt (voir http://doc.trolltech.com)
pour la programmation des composants et les informations sur le type d'exécution. Il ajoute des propriétés et
informations d'héritage à (certaines) classes et fournit un nouveau type de communication entre
ces instances de ces classes, les connexions signal-slot.
OPTIONS
-o filet
Écrire la sortie dans filet plutôt que de stdout.
-f Force la génération d'une instruction #include dans la sortie. C'est la valeur par défaut
pour les fichiers dont le nom correspond à l'expression régulière .[hH][^.]* (c'est-à-dire l'extension
commence avec H or h ). Cette option n'est utile que si vous avez des fichiers d'en-tête qui
pas suivre les conventions de nommage standard.
-i Ne générez pas d'instruction #include dans la sortie. Cela peut être utilisé pour exécuter moqueur
sur un fichier C++ contenant une ou plusieurs déclarations de classe. Vous devriez alors #include
le code du méta objet dans le fichier .cpp (voir USAGE ci-dessous). Si les deux -f et -i sommes-nous
présent, le dernier gagne.
-nw Ne génère aucun avertissement. Non recommandé.
-ldbg Écrire un flot d'informations de débogage lex sur stdout.
-p chemin
Donne moqueur ajouter chemin/ au nom de fichier dans l'instruction #include générée (si
un est généré).
-q chemin
Donne moqueur ajouter chemin/ au nom de fichier de qt #include les fichiers dans le fichier généré
code.
-v Affiche la version de moqueur et Qt.
Vous pouvez dire explicitement au moqueur de ne pas analyser des parties d'un fichier d'en-tête. Il reconnaît n'importe quel C++
commentaire (//) qui contient les sous-chaînes MOC_SKIP_BEGIN ou MOC_SKIP_END. Ils fonctionnent comme vous
attendez-vous et vous pouvez en avoir plusieurs niveaux. Le résultat net vu par le moqueur is
comme si vous aviez supprimé toutes les lignes entre un MOC_SKIP_BEGIN et un MOC_SKIP_END
UTILISATION
moqueur est presque toujours invoqué par a prendre une(1), pas à la main.
moqueur est généralement utilisé avec un fichier d'entrée contenant des déclarations de classe comme celle-ci :
classe VotreClasse : public QObject {
Q_OBJET
Q_PROPRIÉTÉ( ... )
Q_INFOCLASSE( ... )
publique:
VotreClasse( QObject * parent=0, const char * nom=0 );
~VotreClasse();
signaux :
créneaux publics :
};
Voici une règle de makefile utile si vous n'utilisez que GNU make :
m%.cpp : %h
moc $< -o $@
Si vous souhaitez écrire de manière portable, vous pouvez utiliser des règles individuelles de la forme suivante :
mNOM.cpp : NOM.h
moc $< -o $@
Vous devez également penser à ajouter mNOM.cpp à vos SOURCES (remplacez votre nom préféré)
variable et mNOM.o à votre variable OBJETS.
(Bien que nous préférions nommer nos fichiers source C++ .cpp, le moqueur ne le sait pas, alors tu peux
utilisez .C, .cc, .CC, .cxx ou même .c++ si vous préférez.)
Si vous avez des déclarations de classe dans des fichiers C++, nous vous recommandons d'utiliser une règle makefile
comme ça:
NOM.o : mNAME.cpp
mNOM.cpp : NOM.cpp
moc -i $< -o $@
Cela garantit que a prendre une(1) exécutera le moqueur avant qu'il ne compile NOM.cpp. Vous pouvez alors
mettre
#include "nNAME.cpp"
au bout du NOM.cpp, où toutes les classes déclarées dans ce fichier sont parfaitement connues.
DIAGNOSTIC
Parfois, vous pouvez obtenir des erreurs de liaison, en disant que YourClass::className() n'est pas défini ou
que YourClass n'a pas de vtbl. Ces erreurs se produisent le plus souvent lorsque vous oubliez de compiler
le code C++ généré par moc ou incluez ce fichier objet dans la commande de lien.
Le manuel de formation moqueur vous avertira d'un certain nombre de constructions dangereuses ou illégales.
Utilisez moc-qt5 en ligne en utilisant les services onworks.net