Aceasta este comanda moc-qt4 care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
moc - generează codul de suport pentru meta obiect Qt
REZUMAT
putere [-o fișier] [-i] [-f] [-k] [-ldbg] [-nw] [-p cale] [-q cale] [-v] fișier
DESCRIERE
Această pagină documentează meta Obiect compilator pentru cadrul aplicației Qt GUI. The putere
citește una sau mai multe declarații de clasă C++ dintr-un antet C++ sau un fișier sursă și generează
un fișier sursă C++ care conține informații despre meta obiect pentru clase. Sursa C++
fișierul generat de putere trebuie compilate și legate cu implementarea clasei
(sau poate fi #inclus în fișierul sursă al clasei).
Dacă utilizați qfake pentru a vă crea Makefiles, vor fi incluse reguli de compilare care apelează la putere
atunci când este necesar, deci nu va trebui să utilizați putere direct.
Pe scurt, sistemul meta obiect este o structură folosită de Qt (vezi http://doc.trolltech.com)
pentru programarea componentelor și informații despre tipul de timp de rulare. Adaugă proprietăți și
moștenirea informațiilor către (unele) clase și oferă un nou tip de comunicare între
acele instanțe din acele clase, conexiuni semnal-slot.
OPŢIUNI
-o fişier
Scrie ieșire în fişier mai degrabă decât să stdout.
-f Forțați generarea unei instrucțiuni #include în rezultat. Aceasta este valoarea implicită
pentru fișierele al căror nume se potrivește cu expresia regulată .[hH][^.]* (adică extensia
incepe cu H or h ). Această opțiune este utilă numai dacă aveți fișiere antet care au
nu respectă convențiile standard de denumire.
-i Nu generați o instrucțiune #include în rezultat. Acesta poate fi folosit pentru a rula putere
pe un fișier C++ care conține una sau mai multe declarații de clasă. Atunci ar trebui să #includeți
codul meta obiect din fișierul .cpp (vezi UTILIZARE mai jos). Dacă ambele -f si -i sunt
prezent, ultimul câștigă.
-nw Nu generați niciun avertisment. Nu se recomandă.
-ldbg Scrieți un val de informații de depanare lex în stdout.
-p cale
Face putere antecedente cale/ la numele fișierului din instrucțiunea #include generată (dacă
unul este generat).
-q cale
Face putere antecedente cale/ la numele fișierului qt #include fișiere în fișierul generat
cod.
-v Afișează versiunea de putere și Qt.
Puteți spune în mod explicit putere să nu analizeze părți dintr-un fișier antet. Recunoaște orice C++
comentariu (//) care conține subșirurile MOC_SKIP_BEGIN sau MOC_SKIP_END. Ei lucrează ca tine
te-ai aștepta și poți avea mai multe niveluri ale acestora. Rezultatul net așa cum este văzut de putere is
ca și cum ați fi eliminat toate liniile dintre un MOC_SKIP_BEGIN și un MOC_SKIP_END
UTILIZARE
putere este aproape întotdeauna invocată de face(1), nu manual.
putere este de obicei folosit cu un fișier de intrare care conține declarații de clasă ca aceasta:
clasa YourClass : public QObject {
Q_OBJECT
Q_PROPERTY( ... )
Q_CLASSINFO( ... )
public:
YourClass( QObject * parent=0, const char * name=0 );
~Clasa ta();
semnale:
sloturi publice:
};
Iată o regulă utilă pentru makefile dacă utilizați numai GNU make:
m%.cpp: %.h
moc $< -o $@
Dacă doriți să scrieți portabil, puteți utiliza reguli individuale de următoarea formă:
mNAME.cpp: NAME.h
moc $< -o $@
De asemenea, trebuie să vă amintiți să adăugați mNAME.cpp la SURSE (înlocuiește numele tău preferat)
variabilă și mNAME.o la variabila dvs. OBJECTS.
(Deși preferăm să denumim fișierele noastre sursă C++ .cpp, fișierul putere nu știe asta, așa că poți
utilizați .C, .cc, .CC, .cxx sau chiar .c++ dacă preferați.)
Dacă aveți declarații de clasă în fișiere C++, vă recomandăm să utilizați o regulă makefile
asa:
NAME.o: mNAME.cpp
mNAME.cpp: NAME.cpp
moc -i $< -o $@
Aceasta garantează că face(1) va rula putere înainte de a compila NAME.cpp. Atunci poți
pune
#include „nNAME.cpp”
la sfârșitul NAME.cpp, unde toate clasele declarate în acel fișier sunt pe deplin cunoscute.
DIAGNOSTIC
Uneori puteți obține erori de conectare, spunând că YourClass::className() este nedefinită sau
că YourClass nu are un vtbl. Aceste erori apar cel mai des atunci când uitați să compilați
codul C++ generat de moc sau includeți acel fișier obiect în comanda link.
putere vă va avertiza cu privire la o serie de construcții periculoase sau ilegale.
Utilizați moc-qt4 online folosind serviciile onworks.net