Ito ang command na moc-qt5 na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
moc - bumuo ng Qt meta object support code
SINOPSIS
kapangyarihan [-o file] [-i] [-f] [-k] [-ldbg] [-nw] [-p path] [-q path] [-v] file
DESCRIPTION
Ang pahinang ito ay nagdodokumento ng meta Bagay tagatala para sa Qt GUI application framework. Ang kapangyarihan
nagbabasa ng isa o higit pang mga deklarasyon ng klase ng C++ mula sa isang C++ na header o source file at bumubuo
isang C++ source file na naglalaman ng impormasyon ng meta object para sa mga klase. Ang pinagmulan ng C++
file na nabuo ng kapangyarihan ay dapat isama at maiugnay sa pagpapatupad ng klase
(o maaari itong #isama sa source file ng klase).
Kung gumagamit ka ng qmake upang lumikha ng iyong Makefiles, isasama ang mga panuntunan sa pagbuo na tumatawag sa kapangyarihan
kapag kinakailangan, kaya hindi mo na kailangang gamitin ang kapangyarihan direkta.
Sa madaling sabi, ang meta object system ay isang istraktura na ginagamit ng Qt (tingnan http://doc.trolltech.com)
para sa component programming at run time type information. Nagdaragdag ito ng mga katangian at
inheritance information sa (ilang) mga klase at nagbibigay ng bagong uri ng komunikasyon sa pagitan
ang mga pagkakataong iyon ng mga klase, mga koneksyon sa signal-slot.
Opsyon
-o file
Isulat ang output sa file sa halip na mag-stdout.
-f Pilitin ang pagbuo ng isang #include na pahayag sa output. Ito ang default
para sa mga file na ang pangalan ay tumutugma sa regular na expression .[hH][^.]* (ibig sabihin, ang extension
nagsisimula sa H or h ). Ang pagpipiliang ito ay kapaki-pakinabang lamang kung mayroon kang mga file ng header
hindi sumusunod sa karaniwang mga kombensiyon sa pagbibigay ng pangalan.
-i Huwag bumuo ng #include statement sa output. Ito ay maaaring gamitin upang tumakbo kapangyarihan
sa isang C++ file na naglalaman ng isa o higit pang mga deklarasyon ng klase. Dapat mong #include
ang meta object code sa .cpp file (tingnan ang PAGGAMIT sa ibaba). Kung pareho -f at -i ay
kasalukuyan, ang huli ay nanalo.
-nw Huwag bumuo ng anumang mga babala. Hindi inirerekomenda.
-ldbg Sumulat ng baha ng lex debug na impormasyon sa stdout.
-p landas
Maakt kapangyarihan maghanda landas/ sa pangalan ng file sa nabuong pahayag na #include (kung
ang isa ay nabuo).
-q landas
Maakt kapangyarihan maghanda landas/ sa pangalan ng file ng qt #isama ang mga file sa nabuong
code.
-v Ipinapakita ang bersyon ng kapangyarihan at Qt.
Masasabi mo nang tahasan ang kapangyarihan hindi para i-parse ang mga bahagi ng isang header file. Kinikilala nito ang anumang C++
komento (//) na naglalaman ng mga substring na MOC_SKIP_BEGIN o MOC_SKIP_END. Nagtatrabaho sila bilang ikaw
ay inaasahan at maaari kang magkaroon ng ilang mga antas ng mga ito. Ang netong resulta tulad ng nakikita ng kapangyarihan is
na parang inalis mo ang lahat ng linya sa pagitan ng isang MOC_SKIP_BEGIN at isang MOC_SKIP_END
PAGGAMIT
kapangyarihan ay halos palaging hinihingi ng gumawa(1), hindi sa pamamagitan ng kamay.
kapangyarihan ay karaniwang ginagamit sa isang input file na naglalaman ng mga deklarasyon ng klase tulad nito:
klase YourClass : pampublikong QObject {
Q_OBJECT
Q_PROPERTY(... )
Q_CLASSINFO( ... )
pampublikong:
YourClass( QObject * parent=0, const char * name=0 );
~YourClass();
mga senyales:
pampublikong puwang:
};
Narito ang isang kapaki-pakinabang na panuntunan sa makefile kung gagamit ka lang ng GNU make:
m%.cpp: %.h
moc $< -o $@
Kung gusto mong magsulat nang portable, maaari mong gamitin ang mga indibidwal na panuntunan ng sumusunod na form:
mNAME.cpp: NAME.h
moc $< -o $@
Dapat mo ring tandaan na magdagdag mNAME.cpp sa iyong SOURCES (palitan ang iyong paboritong pangalan)
variable at mNAME.o sa iyong OBJECTS variable.
(Habang mas gusto naming pangalanan ang aming C++ na mga source file na .cpp, ang kapangyarihan hindi mo alam yan, kaya mo
gumamit ng .C, .cc, .CC, .cxx o kahit na .c++ kung gusto mo.)
Kung mayroon kang mga deklarasyon ng klase sa mga C++ na file, inirerekomenda namin na gumamit ka ng panuntunan ng makefile
ganito:
NAME.o: mNAME.cpp
mNAME.cpp: NAME.cpp
moc -i $< -o $@
Tinitiyak nito iyon gumawa(1) tatakbo ang kapangyarihan bago ito mag-compile NAME.cpp. Maaari mong pagkatapos
ilagay
#include "nNAME.cpp"
sa dulo ng NAME.cpp, kung saan ang lahat ng mga klase na idineklara sa file na iyon ay ganap na kilala.
DIAGNOSTICS
Minsan maaari kang makakuha ng mga error sa linkage, na nagsasabi na ang YourClass::className() ay hindi natukoy o
na ang YourClass ay walang vtbl. Ang mga error na iyon ay madalas na nangyayari kapag nakalimutan mong mag-compile
ang moc-generated C++ code o isama ang object file na iyon sa link command.
Ang kapangyarihan ay babalaan ka tungkol sa ilang mapanganib o ilegal na mga konstruksyon.
Gumamit ng moc-qt5 online gamit ang mga serbisyo ng onworks.net