ເຮັດ - ຄໍາສັ່ງ Linux - ຄໍາສັ່ງ Unix

ເຮັດ - GNU ເຮັດໃຫ້ປະໂຫຍດເພື່ອຮັກສາກຸ່ມຂອງໂຄງການ

Synopsis

ເຮັດ [ -f makefile ] [option] ... ເປົ້າຫມາຍ ...

ຄໍາເຕືອນ

ຫນ້ານີ້ແມ່ນສານສະກັດຈາກເອກະສານຂອງ GNU ເຮັດ. ມັນໄດ້ຖືກປັບປຸງເທົ່ານັ້ນເພາະວ່າໂຄງການ GNU ບໍ່ໃຊ້ nroff. ສໍາລັບສໍາເລັດສົມບູນ, ເອກະສານປະຈຸບັນ, ເບິ່ງແຟ້ມຂໍ້ມູນ make.info ທີ່ເຮັດຈາກ Texinfo file source make.texinfo .

ລາຍລະອຽດ

ຈຸດປະສົງຂອງການ ເຮັດໃຫ້ ຜົນປະໂຫຍດແມ່ນການກໍານົດອັດຕະໂນມັດທີ່ຕ້ອງປະກອບສ່ວນຊິ້ນສ່ວນຂອງໂຄງການທີ່ມີຂະຫນາດໃຫຍ່ແລະຕ້ອງແກ້ໄຂບັນດາ ຄໍາສັ່ງຕ່າງໆ . ຄູ່ມືອະທິບາຍການປະຕິບັດ GNU ຂອງການ ເຮັດ , ເຊິ່ງໄດ້ຖືກຂຽນໂດຍ Richard Stallman ແລະ Roland McGrath. ຕົວຢ່າງຂອງພວກເຮົາສະແດງໃຫ້ເຫັນໂຄງການ C ນັບຕັ້ງແຕ່ພວກມັນມີສ່ວນຫຼາຍ, ແຕ່ວ່າທ່ານສາມາດໃຊ້ພາສາການຂຽນທີ່ມີໂປແກຼມ compiler ສາມາດໃຊ້ໄດ້ກັບຄໍາສັ່ງ shell. ໃນຄວາມເປັນຈິງ, ເຮັດໃຫ້ ບໍ່ໄດ້ຖືກຈໍາກັດໃນໂຄງການ. ທ່ານສາມາດໃຊ້ມັນເພື່ອອະທິບາຍເຖິງວຽກງານໃດຫນຶ່ງທີ່ບາງໄຟລ໌ຕ້ອງໄດ້ຮັບການປັບປຸງໂດຍອັດຕະໂນມັດຈາກຄົນອື່ນເມື່ອໃດທີ່ຄົນອື່ນປ່ຽນແປງ.

ເພື່ອກຽມພ້ອມທີ່ຈະນໍາໃຊ້, ທ່ານຕ້ອງຂຽນໄຟລ໌ທີ່ເອີ້ນວ່າ makefile ທີ່ອະທິບາຍເຖິງການພົວພັນລະຫວ່າງໄຟລ໌ໃນໂປແກຼມຂອງທ່ານແລະລະບຸຄໍາສັ່ງສໍາລັບການປັບປຸງແຕ່ລະໄຟລ໌. ໃນໂຄງການ, ໂດຍປົກກະຕິໄຟລ໌ທີ່ປະຕິບັດໄດ້ຖືກປັບປຸງຈາກໄຟລ໌ຂອງຈຸດປະສົງ, ຊຶ່ງແມ່ນເຮັດໃນເວລາເຮັດໂດຍການລວບລວມໄຟລ໌ແຫຼ່ງ.

ເມື່ອມີ makefile ທີ່ເຫມາະສົມ, ແຕ່ລະຄັ້ງທີ່ທ່ານປ່ຽນໄຟລ໌ແຫຼ່ງບາງ, ຄໍາສັ່ງ shell ນີ້ງ່າຍດາຍ:

ເຮັດໃຫ້

ພຽງພໍທີ່ຈະປະຕິບັດທັງຫມົດ recompilations ທີ່ຈໍາເປັນ. ໂຄງການ ເຮັດໃຫ້ ໃຊ້ຖານຂໍ້ມູນ makefile ແລະເວລາປ່ຽນແປງຄັ້ງສຸດທ້າຍຂອງໄຟລ໌ເພື່ອຕັດສິນໃຈທີ່ຈະປັບປຸງໄຟລ໌ໃດຫນຶ່ງ. ສໍາລັບແຕ່ລະໄຟລ໌ເຫຼົ່ານັ້ນ, ມັນອອກຄໍາສັ່ງທີ່ບັນທຶກໄວ້ໃນຖານຂໍ້ມູນ.

ເຮັດ ບັນຊີຄໍາສັ່ງໃນ makefile ເພື່ອປັບປຸງຊື່ຫນຶ່ງຫຼືຫຼາຍ ຊື່ ເປົ້າຫມາຍ, ບ່ອນທີ່ ຊື່ ແມ່ນປົກກະຕິເປັນໂຄງການ. ຖ້າບໍ່ມີທາງເລືອກ -f ຈະ ເຮັດໃຫ້ makefiles GNUmakefile , makefile ແລະ Makefile ໃນຄໍາສັ່ງນັ້ນ.

ຕາມປົກກະຕິທ່ານຄວນໂທຫາ makefile ຂອງທ່ານໃຫ້ makefile ຫຼື Makefile . (ພວກເຮົາຂໍແນະນໍາໃຫ້ Makefile ເພາະວ່າມັນປາກົດຢູ່ໃກ້ຈຸດເລີ່ມຕົ້ນຂອງລາຍຊື່ໄດເລກະທໍລີທີ່ຢູ່ໃກ້ກັບໄຟລ໌ທີ່ສໍາຄັນອື່ນໆເຊັ່ນ README .) ຊື່ທໍາອິດທີ່ຖືກກວດສອບ, GNUmakefile , ບໍ່ແນະນໍາໃຫ້ສໍາລັບ makefiles ສ່ວນໃຫຍ່. ທ່ານຄວນໃຊ້ຊື່ນີ້ຖ້າທ່ານມີ makefile ທີ່ຖືກຕ້ອງກັບ GNU ເຮັດ , ແລະຈະບໍ່ໄດ້ຮັບການເຂົ້າໃຈໂດຍສະບັບອື່ນໆຂອງການ ເຮັດ . ຖ້າ makefile ແມ່ນ `- ', ກະລຸນາໃສ່ input ແບບມາດຕະຖານ.

ເຮັດໃຫ້ ການປັບປຸງເປົ້າຫມາຍເປົ້າຫມາຍຖ້າມັນຂຶ້ນກັບໄຟລ໌ທີ່ຕ້ອງການທີ່ຖືກປັບປຸງມາຕັ້ງແຕ່ເປົ້າຫມາຍໄດ້ຖືກດັດແກ້ເທື່ອສຸດທ້າຍ, ຫຼືຖ້າເປົ້າຫມາຍບໍ່ມີ.

OPTIONS

-b

-m

ຕົວເລືອກເຫຼົ່ານີ້ຖືກລະເວັ້ນສໍາລັບຄວາມເຂົ້າໃຈກັບສະບັບອື່ນໆຂອງການ ເຮັດ .

-C dir

ປ່ຽນພາສາ dir ກ່ອນທີ່ຈະອ່ານ makefiles ຫຼືເຮັດຫຍັງອີກ. ຖ້າມີຕົວເລືອກ C ຫຼາຍ, ແຕ່ລະຄົນຈະຖືກຕີລາຄາກັບຄ່າທີ່ຜ່ານມາ: -C / -C etc ແມ່ນເທົ່າກັບ -C / etc. ນີ້ແມ່ນຖືກນໍາໃຊ້ໂດຍປົກກະຕິກັບ invocations recursive ຂອງ ເຮັດໃຫ້ .

-d

ພິມການແກ້ໄຂຂໍ້ມູນຂ່າວສານນອກຈາກການປຸງແຕ່ງປົກກະຕິ. ຂໍ້ມູນການແກ້ໄຂຂໍ້ຂັດແຍ່ງກ່າວວ່າໄຟລ໌ໃດຖືກພິຈາລະນາສໍາລັບການ remaking, ເວລາທີ່ມີເວລາທີ່ຖືກປຽບທຽບແລະກັບຜົນໄດ້ຮັບ, ຊຶ່ງໄຟລ໌ທີ່ຕ້ອງໄດ້ຮັບການແກ້ໄຂໃຫມ່, ຊຶ່ງລະບຽບການທີ່ຖືກຕ້ອງແລະຖືກນໍາໃຊ້ - ທຸກສິ່ງທີ່ຫນ້າສົນໃຈກ່ຽວກັບວິທີການຕັດສິນໃຈ ສິ່ງທີ່ຕ້ອງເຮັດ.

-e

ໃຫ້ຕົວແປທີ່ໄດ້ຮັບຈາກສິ່ງແວດລ້ອມກ່ອນຫນ້ານີ້ກວ່າຕົວແປຈາກ makefiles.

-f file

ໃຊ້ ແຟ້ມ ເປັນ makefile

-i

ປະຕິເສດຂໍ້ຜິດພາດທັງຫມົດໃນຄໍາສັ່ງທີ່ຖືກປະຕິບັດເພື່ອ remake ໄຟລ໌.

-I dir

ລະບຸໄດເລຂອງໄດເລກະທໍລີທີ່ຈະຄົ້ນຫາສໍາລັບ makefiles ລວມ. ຖ້າມີຕົວເລືອກຫລາຍໆ I ຖືກນໍາໃຊ້ເພື່ອກໍານົດໄດເລກະທໍລີຫຼາຍ, ໄດຖືກຄົ້ນຫາໃນຄໍາສັ່ງທີ່ລະບຸໄວ້. ບໍ່ເຫມືອນກັບການໂຕ້ຖຽງກັບປ້າຍອື່ນໆຂອງການ ເຮັດ , ລາຍຊື່ທີ່ໃຫ້ກັບ -I flags ອາດຈະມາໂດຍກົງພາຍຫຼັງທີ່ທົງ: -I dir ຖືກອະນຸຍາດ, ເຊັ່ນດຽວກັນກັບ -I dir. syntax ນີ້ແມ່ນອະນຸຍາດໃຫ້ສໍາລັບການທີ່ເຫມາະສົມກັບ C preprocessor's - flag.

-j jobs

ລະບຸຈໍານວນວຽກ (ຄໍາສັ່ງ) ທີ່ຈະດໍາເນີນການພ້ອມກັນ. ຖ້າມີຫຼາຍກວ່າຫນຶ່ງທາງເລືອກ, ຫນຶ່ງສຸດທ້າຍຈະມີປະສິດຕິພາບ. ຖ້າຕົວເລືອກ -j ແມ່ນໃຫ້ໂດຍບໍ່ມີການໂຕ້ຖຽງ, ເຮັດໃຫ້ ບໍ່ຈໍາກັດຈໍານວນວຽກທີ່ສາມາດດໍາເນີນການພ້ອມໆກັນໄດ້.

-k

ສືບຕໍ່ໃຫ້ຫຼາຍເທົ່າທີ່ເປັນໄປໄດ້ຫຼັງຈາກຄວາມຜິດພາດ. ໃນຂະນະທີ່ເປົ້າຫມາຍທີ່ລົ້ມເຫລວ, ແລະຜູ້ທີ່ຂື້ນກັບມັນ, ບໍ່ສາມາດແກ້ໄຂໄດ້, ຄວາມຂັດແຍ້ງອື່ນໆຂອງເປົ້າຫມາຍເຫຼົ່ານີ້ສາມາດຖືກປະຕິບັດໄດ້ທັງຫມົດ.

-l

-l ໂຫລດ

ລະບຸວ່າບໍ່ມີວຽກໃຫມ່ (ຄໍາສັ່ງ) ທີ່ຄວນຈະເລີ່ມຖ້າມີວຽກອື່ນເຮັດວຽກແລະສະເລ່ຍການໂຫຼດແມ່ນຫນ້ອຍທີ່ສຸດ (ເປັນເລກຈຸດທີ່ຫຼາກຫຼາຍ). ມີການໂຕ້ຖຽງທີ່ບໍ່ມີ, ຖອນກໍານົດຂອບເຂດການໂຫຼດກ່ອນຫນ້ານີ້.

-n

ພິມຄໍາສັ່ງທີ່ຈະຖືກປະຕິບັດ, ແຕ່ບໍ່ປະຕິບັດພວກມັນ.

-o file

ຢ່າເຮັດ remake ໄຟລ໌ໄຟລ ເຖິງແມ່ນວ່າມັນແມ່ນອາຍຸຫຼາຍກ່ວາຄວາມຕ້ອງການຂອງຕົນ, ແລະບໍ່ remake ຫຍັງກ່ຽວກັບບັນຊີຂອງການປ່ຽນແປງໃນ ໄຟລ໌ . ໂດຍພື້ນຖານແລ້ວໄຟລ໌ນີ້ຖືກປະຕິບັດຕາມເກົ່າແລະກົດລະບຽບຂອງມັນຖືກຍົກເລີກ.

-p

ພິມຖານຂໍ້ມູນ (ກົດລະບຽບແລະຄ່າຕົວແປ) ທີ່ເກີດຈາກການອ່ານ makefiles; ຫຼັງຈາກນັ້ນດໍາເນີນການຕາມປົກກະຕິຫຼືເປັນທີ່ລະບຸໄວ້ຖ້າບໍ່ດັ່ງນັ້ນ. ນີ້ຍັງພິມຂໍ້ມູນທີ່ສະແດງໂດຍການປ່ຽນ -v (ເບິ່ງຂ້າງລຸ່ມນີ້). ການພິມຖານຂໍ້ມູນໂດຍບໍ່ຕ້ອງພະຍາຍາມທີ່ຈະລາກໄຟລ໌ໃດໆ, ໃຫ້ ໃຊ້ make -p -f / dev / null.

-q

`` ໂຫມດຄໍາຖາມ ''. ຢ່າດໍາເນີນການຄໍາສັ່ງໃດໆ, ຫຼືພິມສິ່ງໃດ; ພຽງແຕ່ກັບຄືນສະຖານະການການທ່ອງທ່ຽວທີ່ເປັນສູນຖ້າເປົ້າຫມາຍທີ່ໄດ້ກໍານົດໄວ້ແລ້ວ, ບໍ່ແມ່ນຖ້າບໍ່ດັ່ງນັ້ນ.

-r

ລົບລ້າງການນໍາໃຊ້ກົດລະບຽບທີ່ຖືກສ້າງຂຶ້ນ. ນອກຈາກນີ້ຍັງເຮັດໃຫ້ບັນດາຕົວເລກສໍາລັບຄໍາສັ່ງຍືດຫຍໍ້ຢູ່ໃນບັນຊີລາຍຊື່ເລີ່ມຕົ້ນ.

-s

ການປະຕິບັດງານ silent; ບໍ່ພິມຄໍາສັ່ງດັ່ງທີ່ພວກເຂົາຖືກປະຕິບັດ.

-S

ຍົກເລີກຜົນກະທົບຂອງຕົວເລືອກ -k . ນີ້ບໍ່ແມ່ນຄວາມຈໍາເປັນເວັ້ນເສຍແຕ່ວ່າໃນການ ເຮັດ ແບບຮຽງຕາມບ່ອນທີ່ -k ອາດຈະໄດ້ຮັບການສືບທອດມາຈາກຂັ້ນເທິງ ໃຫ້ ຜ່ານ MAKEFLAGS ຫຼືຖ້າທ່ານຕັ້ງຄ່າ KB ໃນ MAKEFLAGS ໃນສະພາບແວດລ້ອມຂອງທ່ານ.

-t

ແຕະໄຟລ໌ (ຕີໃຫ້ເຂົາເຈົ້າເຖິງວັນໂດຍບໍ່ປ່ຽນແປງມັນແທ້ໆ) ແທນທີ່ຈະເຮັດຄໍາສັ່ງຂອງເຂົາເຈົ້າ. ນີ້ແມ່ນຖືກນໍາໃຊ້ເພື່ອທໍາທ່າວ່າຄໍາສັ່ງດັ່ງກ່າວໄດ້ເຮັດ, ເພື່ອຫລີກເວັ້ນການຮຽກຮ້ອງໃນອະນາຄົດ.

-v

ພິມເວີຊັນຂອງໂປລແກລມ ເຮັດ ພ້ອມກັບລິຂະສິດ, ລາຍະການຂອງຜູ້ຂຽນແລະການແຈ້ງການທີ່ບໍ່ມີການຮັບປະກັນ.

-w

ພິມຂໍ້ຄວາມທີ່ມີໂຟເດີການເຮັດວຽກກ່ອນແລະຫຼັງການປຸງແຕ່ງອື່ນໆ. ນີ້ອາດຈະເປັນປະໂຫຍດສໍາລັບການຕິດຕາມຄວາມຜິດພາດຈາກຮັງສັບສົນຂອງຄໍາສັ່ງ ເຮັດ ຕາມແບບຮີບດ່ວນ.

-W file

ຄາດຄະເນວ່າ ໄຟລ໌ ເປົ້າຫມາຍໄດ້ຖືກດັດແກ້. ເມື່ອນໍາໃຊ້ກັບ flag -n , ນີ້ສະແດງໃຫ້ເຫັນວ່າທ່ານຈະມີຫຍັງເກີດຂຶ້ນຖ້າທ່ານຕ້ອງການແກ້ໄຂໄຟລ໌ນັ້ນ. ໂດຍບໍ່ມີ -n , ມັນແມ່ນເກືອບຄືກັນກັບການໃຊ້ຄໍາສັ່ງ ສໍາພັດ ໃນໄຟລ໌ທີ່ກໍານົດໄວ້ກ່ອນທີ່ຈະເຮັດວຽກ, ເວັ້ນເສຍແຕ່ວ່າເວລາດັດແກ້ຖືກປ່ຽນແປງພຽງແຕ່ໃນການຈິນຕະນາການຂອງການ ເຮັດ .