ນີ້ແມ່ນຄໍາສັ່ງ fteqcc ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
fteqcc - FTE QuakeC compiler
ສະຫຼຸບສັງລວມ
fteqcc [ທາງເລືອກໃນການ]
ລາຍລະອຽດ
ຫນ້າຄູ່ມືນີ້ເອກະສານສັ້ນໆກ່ຽວກັບ fteqcc ຄໍາສັ່ງ.
fteqcc ເປັນໂຄງການທີ່ລວບລວມ QuakeC sourcecode ກັບຂໍ້ມູນເກມ binaray ຂອງ Quake1 ຫຼື
ເກມ QuakeWorld.
OPTIONS
- ຊ່ວຍ ສະແດງສະຫຼຸບຂອງທາງເລືອກ.
-Fautoproto
ເປີດໃຊ້ຕົວແບບອັດຕະໂນມັດ
-Fwasm dump ລະຫັດ assembler ທັງຫມົດໄປຫາ qc.asm
- ຄໍາສໍາຄັນ, -Kno-keyword
ເປີດຫຼືປິດຄໍາຫລັກພາສາ. ຄໍາສໍາຄັນທີ່ມີຢູ່ເພື່ອສະຫຼັບແມ່ນ: asm, break,
case, class, const, ສືບຕໍ່, default, entity, enum, enumflags, extern, float, for,
goto, int, integer, noref, nosave, shared, state, string, struct, switch,
thinktime, typedef, union, var ແລະ vector.
-O0, -O1, -O2, -O3,
ໃຊ້ລະດັບການເພີ່ມປະສິດທິພາບລະຫວ່າງ 0 ແລະ 3. ດ້ວຍ 0, ບໍ່ມີການເພີ່ມປະສິດທິພາບເກີດຂຶ້ນ, ອື່ນໆ
ຄ່າປະກອບມີຫຼາຍຫຼືຫນ້ອຍຂອງທາງເລືອກໃນພາກ ການເພີ່ມປະສິດທິພາບ.
-src ລະບົບ
ລະບຸໄດເລກະທໍລີເພື່ອຊອກຫາໄຟລ໌ຕົ້ນສະບັບ (progs.src) ໃນ.
- ຝາ ສະແດງຄໍາເຕືອນທັງຫມົດ
ຮູບແບບ
fteqcc ສະຫນັບສະຫນູນຮູບແບບຜົນຜະລິດຫຼາຍ.
- ມາດຕະຖານ, -Tq1, -Tquakec
ນີ້ແມ່ນການຕັ້ງຄ່າເລີ່ມຕົ້ນ ແລະສ້າງລະຫັດທີ່ເຂົ້າກັນໄດ້ກັບ Quake1 ຕົ້ນສະບັບ.
-Thexen2, - ທ2
ອອກລະຫັດ Hexen2 ທີ່ເຂົ້າກັນໄດ້.
-Tkkqwsv, -Tkk7, -Tbigprogs, -Tversion7, -Tkkqwsv
ສ້າງໂປຣແກມທີ່ເຂົ້າກັນໄດ້ຂອງ KK Version 7
-Tfte ສ້າງລະຫັດສະເພາະກັບ FTE Quake.
ການເພີ່ມປະສິດທິພາບ
ຕົວເລືອກຕໍ່ໄປນີ້ອາດຈະຖືກໃຊ້ເພື່ອປັບການປັບແຕ່ງໃຫ້ເໝາະສົມ. ບາງສ່ວນຂອງພວກມັນຖືກເປີດໃຊ້
ອັດຕະໂນມັດ.
- ວຽກງານ
c = a*b ຖືກປະຕິບັດໃນຫນຶ່ງການດໍາເນີນງານແທນທີ່ຈະເປັນສອງ, ແລະສາມາດເຮັດໃຫ້ອາຍຸ
decompilers ລົ້ມເຫລວ.
-Oshortenifs
ຖ້າ (!a) ຖືກລວບລວມຕາມປະເພນີໃນສອງຄໍາຖະແຫຼງການ. ການເພີ່ມປະສິດທິພາບນີ້ເຮັດມັນຢູ່ໃນ
ຫນຶ່ງ, ແຕ່ສາມາດເຮັດໃຫ້ decompilers ບາງສັບສົນ.
-Ononvec_parms
ໃນ qcc ຕົ້ນສະບັບ, ພາລາມິເຕີການທໍາງານໄດ້ຖືກກໍານົດເປັນ vector store ເຖິງແມ່ນວ່າສໍາລັບ
ລອຍ. ນີ້ແກ້ໄຂວ່າ.
-Oconstant_names
ຖອດຊື່ຂອງຄ່າຄົງທີ່ອອກຈາກໂປຣແກມຂອງເຈົ້າ, ສົ່ງຜົນໃຫ້ໄຟລ໌ນ້ອຍລົງ. ມັນ
ເຮັດໃຫ້ decompilers ອອກຈາກຊື່ຫຼື fabricate ຕົວເລກ.
-Oconstant_name_strings
ຖອດຊື່ຂອງສະຕຣິງຄົງທີ່ອອກຈາກ progs ຂອງທ່ານ. ນີ້ສາມາດທໍາລາຍ addons, ດັ່ງນັ້ນ
ຢ່າໃຊ້ມັນໃນກໍລະນີເຫຼົ່ານັ້ນ.
-Odupconstdefs
ຮວມຄຳນິຍາມຂອງຄ່າຄົງທີ່ທີ່ເປັນຄ່າດຽວກັນ. ເອົາໃຈໃສ່ເປັນພິເສດ
ການມອບຫມາຍໃຫ້ຄໍາເຕືອນຄົງທີ່.
-Onouplicatestrings
ຫຍໍ້ຕາຕະລາງ string ທີ່ເກັບໄວ້ໃນ progs. ມັນຈະເປັນຫຼາຍສົມຄວນ
ນ້ອຍກວ່ານີ້.
-Olocals
ຖອດຊື່ ແລະຄຳນິຍາມທ້ອງຖິ່ນອອກ. ນີ້ເຮັດໃຫ້ມັນຍາກແທ້ໆທີ່ຈະ decompile
-Ofunction_names
ນີ້ຈະຖອດຊື່ຂອງຫນ້າທີ່ບໍ່ເຄີຍເອີ້ນວ່າ. ບໍ່ໄດ້ເຮັດໃຫ້ຫຼາຍ
ຜົນກະທົບເຖິງແມ່ນວ່າ.
- ຊື່ໄຟລ໌
ອັນນີ້ລຶບຊື່ໄຟລ໌ຂອງໂປຣແກມອອກ. ນີ້ສາມາດສັບສົນສິ່ງທີ່ເກົ່າແກ່ແທ້ໆ
decompilers, ແຕ່ບໍ່ມີຫຍັງສໍາລັບຄົນທີ່ຜ່ານມາ.
- ອ້າງອິງ
ເອົາລາຍການຂອງຕົວແປທີ່ບໍ່ໄດ້ອ້າງອີງ. ບໍ່ໄດ້ສ້າງຄວາມແຕກຕ່າງໃນທີ່ດີ
ລະຫັດຮັກສາໄວ້.
- overlaptemps
ເພີ່ມປະສິດທິພາບການນັບ pr_globals ໂດຍການທັບຊ້ອນກັນຊົ່ວຄາວ. ໃນ QC, ທຸກໆ
ການຄູນ, ການແບ່ງຫຼືການດໍາເນີນງານໂດຍທົ່ວໄປເຮັດໃຫ້ຕົວແປຊົ່ວຄາວ.
ການເພີ່ມປະສິດທິພາບນີ້ປ້ອງກັນບໍ່ໃຫ້ເກີນ, ແລະໃນກໍລະນີຂອງລະຫັດເກມຂອງ Hexen2, ຫຼຸດລົງ
ນັບ 50k. ນີ້ແມ່ນການເພີ່ມປະສິດທິພາບທີ່ສໍາຄັນທີ່ສຸດ, ເຄີຍ.
-Oconstantarithmatic
5*6 ຕົວຈິງແລ້ວ emits ການດໍາເນີນງານເຂົ້າໄປໃນ progs ໄດ້. ນີ້ປ້ອງກັນບໍ່ໃຫ້ເກີດຂຶ້ນ,
ປະສິດທິຜົນເຮັດໃຫ້ compiler ເບິ່ງ 30
-Oprecache_file
ຖອດສິ່ງທີ່ເສຍໄປທີ່ໃຊ້ໃນການເອີ້ນຟັງຊັນ ແລະສາຍໄປຫາ precache_file
buildin (ເຊິ່ງຕົວຈິງແລ້ວແມ່ນ stub ໃນແຜ່ນດິນໄຫວ).
-Oreturn_only
ຟັງຊັນທີ່ສິ້ນສຸດໃນຄໍາຖະແຫຼງການກັບຄືນບໍ່ຈໍາເປັນຕ້ອງມີຄໍາຖະແຫຼງທີ່ເຮັດແລ້ວໃນຕອນທ້າຍຂອງ
ຫນ້າທີ່. ນີ້ສາມາດສັບສົນບາງ decompilers, ເຮັດໃຫ້ຫນ້າທີ່ປາກົດຂື້ນຫຼາຍ
ກ່ວາເຂົາເຈົ້າ.
-Ocompound_jumps
ການເພີ່ມປະສິດທິພາບນີ້ມີຜົນກະທົບສ່ວນໃຫຍ່ກັບຂໍ້ຄວາມ if/else, ແທນທີ່ຈະເປັນ
ໂດດໄປຫາຄໍາຖະແຫຼງການໂດດທີ່ບໍ່ມີເງື່ອນໄຂ, ມັນຈະໂດດໄປຫາຈຸດຫມາຍປາຍທາງສຸດທ້າຍ
ແທນ. ນີ້ຈະເຮັດໃຫ້ decompilers bewilder.
-Ostrip_functions
ຖອດອອກ 'defs' ຂອງຟັງຊັນທີ່ເຄີຍຖືກເອີ້ນໂດຍກົງ. ນີ້ເຮັດ
ບໍ່ມີຜົນກະທົບຕໍ່ເກມທີ່ບັນທຶກໄວ້.
-Olocals_marshalling
ເກັບຮັກສາທ້ອງຖິ່ນທັງຫມົດຢູ່ໃນສ່ວນຫນຶ່ງຂອງ pr_globals. ຫຼຸດລົງຢ່າງຫຼວງຫຼາຍ. ນີ້
ປະສິດທິຜົນເຮັດວຽກຂອງ overlaptemps. ມັນໄດ້ຖືກສັງເກດເຫັນວ່າເປັນ buggy ໂດຍຈໍານວນຫນ້ອຍ,
ແນວໃດກໍ່ຕາມ, ແລະສະຖານະການທີ່ມັນເຮັດໃຫ້ເກີດບັນຫາແມ່ນຍັງບໍ່ທັນຮູ້ເທື່ອ.
-Ovectorcals
ບ່ອນທີ່ຟັງຊັນຖືກເອີ້ນດ້ວຍ vector, ນີ້ເຮັດໃຫ້ເກີດການເອີ້ນຟັງຊັນ
ເກັບຮັກສາສາມ floats ແທນທີ່ຈະເປັນ vector ຫນຶ່ງ. ນີ້ສາມາດປະຫຍັດຈໍານວນ pr_globals ທີ່ດີ
ບ່ອນທີ່ vector ເຫຼົ່ານັ້ນມີຈຸດປະສານງານທີ່ຊ້ໍາກັນຫຼາຍແຕ່ບໍ່ກົງກັນທັງຫມົດ.
ໃຊ້ fteqcc ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net