ນີ້ແມ່ນຄໍາສັ່ງ moc-qt4 ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
moc - ສ້າງລະຫັດສະຫນັບສະຫນູນວັດຖຸ Qt meta
ສະຫຼຸບສັງລວມ
ມ [-o file] [-i] [-f] [-k] [-ldbg] [-nw] [-p path] [-q path] [-v] ໄຟລ໌
ລາຍລະອຽດ
ຫນ້ານີ້ເອກະສານ Meta ຈຸດປະສົງ ຜູ້ລວບລວມຂໍ້ມູນ ສໍາລັບກອບຄໍາຮ້ອງສະຫມັກ Qt GUI. ໄດ້ ມ
ອ່ານໜຶ່ງ ຫຼືຫຼາຍຄຳປະກາດຊັ້ນຮຽນ C++ ຈາກສ່ວນຫົວຂອງ C++ ຫຼືໄຟລ໌ແຫຼ່ງ ແລະສ້າງ
ໄຟລ໌ແຫຼ່ງ C++ ທີ່ມີຂໍ້ມູນ meta object ສໍາລັບຫ້ອງຮຽນ. ແຫຼ່ງ C++
ໄຟລ໌ທີ່ສ້າງຂຶ້ນໂດຍ ມ ຕ້ອງໄດ້ຮັບການລວບລວມແລະເຊື່ອມໂຍງກັບການປະຕິບັດຂອງຫ້ອງຮຽນ
(ຫຼືມັນສາມາດຖືກ # ລວມເຂົ້າໄປໃນໄຟລ໌ແຫຼ່ງຂອງຫ້ອງຮຽນ).
ຖ້າຫາກວ່າທ່ານນໍາໃຊ້ qmake ເພື່ອສ້າງ Makefiles ຂອງທ່ານ, ກົດລະບຽບການກໍ່ສ້າງຈະຖືກລວມເຂົ້າທີ່ໂທຫາ ມ
ເມື່ອຕ້ອງການ, ດັ່ງນັ້ນທ່ານຈະບໍ່ຈໍາເປັນຕ້ອງໃຊ້ ມ ໂດຍກົງ.
ໂດຍຫຍໍ້, ລະບົບວັດຖຸ meta ແມ່ນໂຄງສ້າງທີ່ໃຊ້ໂດຍ Qt (ເບິ່ງ http://doc.trolltech.com)
ສໍາລັບການຂຽນໂປລແກລມອົງປະກອບແລະຂໍ້ມູນປະເພດເວລາແລ່ນ. ມັນເພີ່ມຄຸນສົມບັດແລະ
ຂໍ້ມູນມໍລະດົກກັບ (ບາງ) ຫ້ອງຮຽນແລະສະຫນອງການປະເພດໃຫມ່ຂອງການສື່ສານລະຫວ່າງ
ຕົວຢ່າງຂອງຊັ້ນຮຽນເຫຼົ່ານັ້ນ, ການເຊື່ອມຕໍ່ສັນຍານຊ່ອງສຽບ.
OPTIONS
-o ເອກະສານ
ຂຽນຜົນໄດ້ຮັບໃສ່ ເອກະສານ ແທນທີ່ຈະ stdout.
-f ບັງຄັບການສ້າງຄໍາຖະແຫຼງການ #include ໃນຜົນໄດ້ຮັບ. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ
ສໍາລັບໄຟລ໌ທີ່ມີຊື່ກົງກັບການສະແດງຜົນປົກກະຕິ .[hH][^.]* (ເຊັ່ນ: ສ່ວນຂະຫຍາຍ
ເລີ່ມຕົ້ນດ້ວຍ H or h ). ຕົວເລືອກນີ້ມີປະໂຫຍດພຽງແຕ່ຖ້າທ່ານມີໄຟລ໌ header ທີ່ເຮັດ
ບໍ່ປະຕິບັດຕາມສົນທິສັນຍາການຕັ້ງຊື່ມາດຕະຖານ.
-i ຢ່າສ້າງຄໍາຖະແຫຼງການ #include ໃນຜົນໄດ້ຮັບ. ນີ້ອາດຈະຖືກນໍາໃຊ້ເພື່ອດໍາເນີນການ ມ
ຢູ່ໃນໄຟລ໌ C++ ທີ່ມີໜຶ່ງ ຫຼືຫຼາຍກວ່າການປະກາດຊັ້ນຮຽນ. ຫຼັງຈາກນັ້ນທ່ານຄວນ #include
ລະຫັດວັດຖຸ meta ໃນໄຟລ໌ .cpp (ເບິ່ງ USAGE ຂ້າງລຸ່ມນີ້). ຖ້າທັງສອງ -f ແລະ -i ມີ
ປະຈຸບັນ, ຄົນສຸດທ້າຍຊະນະ.
- ນວ ຢ່າສ້າງຄໍາເຕືອນໃດໆ. ບໍ່ແນະນໍາ.
-ldbg ຂຽນນ້ໍາຖ້ວມຂອງ lex debug ຂໍ້ມູນຂ່າວສານເພື່ອ stdout.
-p ເສັ້ນທາງ
ເຮັດໃຫ້ ມ ລ່ວງໜ້າ ເສັ້ນທາງ/ ກັບຊື່ໄຟລ໌ໃນຄໍາຖະແຫຼງທີ່ຜະລິດ #include (ຖ້າ
ຫນຶ່ງແມ່ນສ້າງຂຶ້ນ).
-q ເສັ້ນທາງ
ເຮັດໃຫ້ ມ ລ່ວງໜ້າ ເສັ້ນທາງ/ ກັບຊື່ໄຟລ໌ຂອງ qt #include ໄຟລ໌ທີ່ສ້າງຂຶ້ນ
ລະຫັດ.
-v ສະແດງສະບັບຂອງ ມ ແລະ Qt.
ເຈົ້າສາມາດບອກໄດ້ຢ່າງຊັດເຈນ ມ ບໍ່ໃຫ້ແຍກສ່ວນຂອງໄຟລ໌ສ່ວນຫົວ. ມັນຮັບຮູ້ C ++ ໃດໆ
ຄຳເຫັນ (//) ທີ່ມີສະຕຣິງຍ່ອຍ MOC_SKIP_BEGIN ຫຼື MOC_SKIP_END. ພວກເຂົາເຮັດວຽກເປັນເຈົ້າ
ຈະຄາດຫວັງແລະທ່ານສາມາດມີຫຼາຍລະດັບຂອງເຂົາເຈົ້າ. ຜົນໄດ້ຮັບສຸດທິທີ່ເຫັນໂດຍ ມ is
ຄືກັບວ່າທ່ານໄດ້ລຶບທຸກສາຍລະຫວ່າງ MOC_SKIP_BEGIN ແລະ MOC_SKIP_END
ການນໍາໃຊ້
ມ ເກືອບສະເຫມີຖືກຮຽກຮ້ອງໂດຍ ເຮັດໃຫ້(1), ບໍ່ແມ່ນດ້ວຍມື.
ມ ໂດຍປົກກະຕິແມ່ນໃຊ້ກັບໄຟລ໌ປ້ອນຂໍ້ມູນທີ່ມີຄໍາປະກາດຊັ້ນຮຽນເຊັ່ນນີ້:
ຫ້ອງຮຽນ YourClass : public QObject {
Q_OBJECT
Q_PROPERTY(... )
Q_CLASSINFO(... )
ສາທາລະນະ:
YourClass(QObject * parent=0, const char * name=0 );
~YourClass();
ສັນຍານ:
ຊ່ອງສາທາລະນະ:
};
ນີ້ແມ່ນກົດລະບຽບ makefile ທີ່ເປັນປະໂຫຍດຖ້າທ່ານພຽງແຕ່ໃຊ້ GNU make:
m%.cpp: %.h
moc $< -o $@
ຖ້າທ່ານຕ້ອງການຂຽນແບບພົກພາ, ທ່ານສາມາດນໍາໃຊ້ກົດລະບຽບສ່ວນບຸກຄົນຂອງແບບຟອມຕໍ່ໄປນີ້:
mNAME.cpp: NAME.h
moc $< -o $@
ນອກນັ້ນທ່ານຍັງຕ້ອງຈື່ຈໍາທີ່ຈະເພີ່ມ mNAME.cpp ກັບແຫຼ່ງຂອງທ່ານ (ແທນຊື່ທີ່ທ່ານມັກ)
ຕົວແປແລະ mNAME.o ກັບຕົວແປ OBJECTS ຂອງທ່ານ.
(ໃນຂະນະທີ່ພວກເຮົາມັກຕັ້ງຊື່ໄຟລ໌ແຫຼ່ງ C++ ຂອງພວກເຮົາ .cpp, the ມ ບໍ່ຮູ້ວ່າ, ສະນັ້ນທ່ານສາມາດ
ໃຊ້ .C, .cc, .CC, .cxx ຫຼືແມ້ກະທັ້ງ .c++ ຖ້າທ່ານຕ້ອງການ.)
ຖ້າທ່ານມີການປະກາດຊັ້ນຮຽນໃນໄຟລ໌ C ++, ພວກເຮົາແນະນໍາໃຫ້ທ່ານໃຊ້ກົດລະບຽບ makefile
ເຊັ່ນນີ້:
NAME.o: mNAME.cpp
mNAME.cpp: NAME.cpp
moc -i $< -o $@
ນີ້ຮັບປະກັນວ່າ ເຮັດໃຫ້(1) ຈະດໍາເນີນການ ມ ກ່ອນທີ່ມັນຈະລວບລວມ NAME.cppທີ່ຢູ່ ຫຼັງຈາກນັ້ນທ່ານສາມາດ
ເອົາໃຈໃສ່
#ລວມທັງ "nNAME.cpp"
ໃນຕອນທ້າຍຂອງ NAME.cpp, ບ່ອນທີ່ຫ້ອງຮຽນທັງຫມົດທີ່ປະກາດຢູ່ໃນໄຟລ໌ນັ້ນແມ່ນເປັນທີ່ຮູ້ຈັກຢ່າງເຕັມສ່ວນ.
ທິດສະດີວິທະຍາ
ບາງຄັ້ງທ່ານອາດຈະໄດ້ຮັບຄວາມຜິດພາດການເຊື່ອມຕໍ່, ໂດຍກ່າວວ່າ YourClass::className() ແມ່ນບໍ່ໄດ້ກໍານົດຫຼື
ວ່າ YourClass ຂາດ vtbl. ຄວາມຜິດພາດເຫຼົ່ານັ້ນເກີດຂຶ້ນເລື້ອຍໆໃນເວລາທີ່ທ່ານລືມລວບລວມ
ລະຫັດ C++ ທີ່ສ້າງ moc ຫຼືລວມເອົາໄຟລ໌ວັດຖຸນັ້ນຢູ່ໃນຄໍາສັ່ງເຊື່ອມຕໍ່.
ໄດ້ ມ ຈະເຕືອນທ່ານກ່ຽວກັບການກໍ່ສ້າງອັນຕະລາຍຫຼືຜິດກົດຫມາຍຈໍານວນຫນຶ່ງ.
ໃຊ້ moc-qt4 ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net