Questo è il comando moc-qt4 che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
moc - genera il codice di supporto del meta oggetto Qt
SINOSSI
potenza [-o file] [-i] [-f] [-k] [-ldbg] [-nw] [-p percorso] [-q percorso] [-v] file
DESCRIZIONE
Questa pagina documenta il Meta Oggetto Compiler per il framework dell'applicazione Qt GUI. Il potenza
legge una o più dichiarazioni di classe C++ da un'intestazione C++ o da un file sorgente e genera
un file sorgente C++ contenente informazioni sui meta oggetti per le classi. La sorgente C++
file generato dal potenza deve essere compilato e collegato con l'implementazione della classe
(oppure può essere #incluso nel file sorgente della classe).
Se si utilizza qmake per creare i tuoi Makefile, verranno incluse regole di compilazione che chiamano il potenza
quando richiesto, quindi non sarà necessario utilizzare il potenza direttamente.
In breve, il sistema di meta oggetti è una struttura usata da Qt (vedi http://doc.trolltech.com)
per la programmazione dei componenti e le informazioni sul tipo di runtime. Aggiunge proprietà e
informazioni sull'ereditarietà a (alcune) classi e fornisce un nuovo tipo di comunicazione tra
quelle istanze di quelle classi, connessioni signal-slot.
VERSIONI
-o filetto
Scrivi output su filetto piuttosto che stdout.
-f Forza la generazione di un'istruzione #include nell'output. Questa è l'impostazione predefinita
per i file il cui nome corrisponde all'espressione regolare .[hH][^.]* (cioè l'estensione
inizia con H or h ). Questa opzione è utile solo se hai file di intestazione che lo fanno
non seguono le convenzioni di denominazione standard.
-i Non generare un'istruzione #include nell'output. Questo può essere usato per correre potenza
su un file C++ contenente una o più dichiarazioni di classe. Dovresti quindi #includere
il codice meta oggetto nel file .cpp (vedi UTILIZZO sotto). Se entrambi -f ed -i sono
presente, vince l'ultimo.
-nw Non generare avvisi. Non consigliato.
-ldbg Scrivi una marea di informazioni di debug lex su stdout.
-p sentiero
Rende potenza anteporre sentiero/ al nome del file nell'istruzione #include generata (se
uno è generato).
-q sentiero
Rende potenza anteporre sentiero/ al nome file di qt #include file nel file generato
codice.
-v Visualizza la versione di potenza e Qt.
Puoi dire esplicitamente al potenza non analizzare parti di un file di intestazione. Riconosce qualsiasi C++
commento (//) che contiene le sottostringhe MOC_SKIP_BEGIN o MOC_SKIP_END. Funzionano come te
ti aspetteresti e puoi averne diversi livelli. Il risultato netto visto da potenza is
come se avessi rimosso tutte le linee tra un MOC_SKIP_BEGIN e un MOC_SKIP_END
USO
potenza è quasi sempre invocato da make(1), non a mano.
potenza viene in genere utilizzato con un file di input contenente dichiarazioni di classe come questa:
class TuaClasse : public QObject {
Q_OGGETTO
Q_PROPRIETA'(...)
Q_CLASSINFO(...)
pubblico:
YourClass(QObject * parent=0, const char * name=0);
~La tua classe();
segnali:
slot pubblici:
};
Ecco un'utile regola per il makefile se usi solo GNU make:
m%.cpp: %.h
moc $< -o $@
Se vuoi scrivere in modo portabile, puoi utilizzare regole individuali del seguente modulo:
mNOME.cpp: NOME.h
moc $< -o $@
Devi anche ricordarti di aggiungere mNOME.cpp alle tue FONTI (sostituisci il tuo nome preferito)
variabile e mNOME.o alla tua variabile OBJECTS.
(Mentre preferiamo chiamare i nostri file sorgente C++ .cpp, il potenza non lo sa, quindi puoi
usa .C, .cc, .CC, .cxx o anche .c++ se preferisci.)
Se hai dichiarazioni di classe nei file C++, ti consigliamo di usare una regola makefile
come questo:
NOME.o: mNOME.cpp
mNOME.cpp: NOME.cpp
moc -i $< -o $@
Questo garantisce che make(1) eseguirà il potenza prima che venga compilato NOME.cpp. Puoi quindi
metti
#include "nNAME.cpp"
alla fine di NOME.cpp, dove tutte le classi dichiarate in quel file sono completamente note.
DIAGNOSTICA
A volte potresti ricevere errori di collegamento, dicendo che YourClass::className() non è definito o
che YourClass manca di un vtbl. Questi errori si verificano più spesso quando dimentichi di compilare
il codice C++ generato da moc o includi quel file oggetto nel comando link.
I potenza ti avviserà di una serie di costrutti pericolosi o illegali.
Usa moc-qt4 online utilizzando i servizi onworks.net