Make - Линуксийн командууд - Unix Command

make - GNU програмын бүлгийг хадгалахын тулд бүтээдэг

Ерөнхий агуулга

make [ -f makefile ] [option] ... зорилтот ...

Анхааруулга

Энэ хуудас нь GNU make- ийн баримт бичгийн задалбар юм. GNU төсөл нь nroff-г ашигладаггүй учир энэ нь зөвхөн заримдаа шинэчлэгддэг. Бүрэн, одоогийн баримтжуулалтыг makeinfo хуудаснаас авч болно.

Тодорхойлолт

Ашигтай хэрэгсэлийн зорилго нь том програмын аль хэсгүүдийг дахин эмхэтгэхээ шийдэж тэдгээрийг дахин эмхэтгэх тушаалыг гаргах явдал юм. Гарын авлага нь Ричард Сталлман, Роланд МакГрат нарын бичсэн GNU-ийн гүйцэтгэлийг тайлбарлав. Бидний жишээнүүд нь хамгийн түгээмэл учраас C програмуудыг харуулдаг боловч хөрвүүлэгч нь бүрхүүлийн тушаалаар ажиллуулж болох програмчлалын хэлээр make- ийг ашиглаж болно. Үнэндээ, хийх нь хөтөлбөрт хязгаарлагддаггүй. Зарим файлуудыг бусдаас өөр шинэчлэлтийг автоматаар шинэчилж байх ёстой ямар нэгэн даалгаварыг тайлбарлахдаа ашиглаж болно.

Ашиглахад бэлтгэхийн тулд та програмынхаа файлуудын хоорондын харилцааг тодорхойлдог, makefile гэсэн файл үүсгэх ёстой бөгөөд файл бүрийг шинэчлэх тушаалуудыг оруулна. Хөтөлбөрт гол төлөв гүйцэтгэгдэж байгаа файл нь обьект файлаас шинэчлэгддэг бөгөөд энэ нь эх файлуудыг хөрвүүлэх замаар хийгддэг.

Зөв тохиргооны файл бий болсон тохиолдолд зарим эхлэл файлыг өөрчлөх болгондоо энэ энгийн бүрхүүл тушаалыг:

make

шаардлагатай бүх шаардлагатай нөхөн бүрдүүлэлт хийхэд хангалттай. Make програм нь makefile өгөгдлийн бааз болон файлуудын сүүлчийн өөрчлөлт хийх цагийг ашиглан файлуудын аль хувилбарыг шинэчлэхийг шийддэг. Эдгээр файл тус бүрийн хувьд энэ нь мэдээллийн баазад бичигдсэн тушаалуудыг гаргадаг.

тушаал нь нэг эсвэл хэд хэдэн зорилтот нэрийг шинэчлэхийн тулд makefile дотроос тушаалуудыг гүйцэтгэх бөгөөд нэр нь ихэвчлэн програм байдаг. Хэрэв no -f сонголт байвал make makefiles GNUmakefile , makefile , Makefile гэсэн дарааллаар хайна .

Ер нь та өөрийн makefile дээр makefile эсвэл Makefile аль аль нь залгах хэрэгтэй . (Бид Makefile-г зөвлөж байна, учир нь энэ нь сангийн жагсаалтын эхэнд ойрхон, README гэх мэт бусад чухал файлуудтай ойрхон байгаа мэт санагдаж байна.) Эхний нэрийг GNUmakefile-ийн ихэнхийг шалгасан бөгөөд ихэнх makefiles-д зөвлөдөггүй. Хэрэв танд GNU бүтээхэд хэрэглэгдэх makefile байгаа бол энэ нэрийг ашиглах ёстой бөгөөд make тушаалын бусад хувилбаруудаар ойлгохгүй болно. Хэрэв makefile нь `- 'бол стандарт оролтыг уншдаг.

Зорилт хамгийн сүүлд өөрчлөгдсөнөөс хойш өөрчлөгдсөн урьдчилсан нөхцөл байдлын файлуудаас хамаарч шинэчлэл хийх эсвэл зорилгодоо хүрээгүй бол шинэчлэлийг зорилтот түвшинд гаргах .

OPTIONS

Эдгээр тохируулгууд нь make тушаалын бусад хувилбаруудтай нийцгүй орхигдуулагддаг.

-C dir

Makefiles -ийг уншсан эсвэл өөр бусад зүйлсийг хийхийн өмнө сангаар dir санд ороорой. Хэрэв олон -C тохируулгууд тодорхойлогдвол тус бүр нь өмнөхтэй нь харьцуулагдана: -C / -C гэх мэт -C / etc -тай тэнцүү байна. Энэ нь ихэвчлэн make recursive invocations ашиглагддаг.

-d

Хэвийн боловсруулалтаас гадна дибаг мэдээллийг хэвлэх. Дифференц мэдээлэл нь аль файлыг дахин боловсруулалтанд хамааралтай гэж үздэг, файлын-цагийг хэрхэн харьцуулж, ямар үр дүн, ямар файлуудыг дахин засах хэрэгтэй, ямар дүрмүүдийг авч үздэг, хэрэглэдэг вэ --- ямар шийдвэр гаргах талаар сонирхолтой зүйл Юу хийх вэ.

-e

Makefiles-ийн хувьсах хэмжигдэхүүнээс орчны хувьсагчаас авсан хувьсагчуудыг өгнө.

-f файл

Файлыг файл болгон ашиглах.

-i

Гүйцэтгэсэн тушаалууд дахь бүх алдааг үл тоомсорлох

-Би ч гэсэн

Оруулсан makefiles -ийг хайхын тулд dir санг зааж өгнө. Хэд хэдэн -I тохируулгууд нь хэд хэдэн сангуудыг зааж өгөхөд ашиглагддагаар сангуудыг заасан дарааллаар хайдаг. Хийж байгаа бусад тугуудын хоорондох нэмэлт өгөгдлүүдээс ялгаатай нь, I тугнуудтай хамт өгсөн туг нь тугны дараа шууд ирж болно: -I dir , мөн -I dir. Энэ синтакс нь C preprocessor -I тугтай нийцтэй байх боломжийг олгодог.

ажлын байр

Ажлын тоог (тушаал) нэгэн зэрэг ажиллуулахыг зааж өгнө. Хэрэв нэгээс илүү олон тохируулга байгаа бол сүүлийнх нь үр дүнтэй байдаг. Хэрэв -j тохируулга аргумент өгөгдөөгүй бол make зэрэг ажиллуулж болох ажлын тоог хязгаарлахгүй.

-k

Алдааны дараа аль болох ихийг үргэлжлүүл. Зорилтот бүтэлгүйтсэн зорилт, үүнээс хамаарах зүйлсийг дахин засварлах боломжгүй боловч эдгээр зорилтуудын бусад хамаарал бүгд адилхан боловсрогдож болно.

-l

ачаалал

Ажиллаж байгаа бусад ажлууд байгаа бол ачаалал дунджаар ачаалал багатай (хөвөгч цэгийн дугаар) бол шинэ ажлын байр (тушаал) -ыг эхлүүлэх ёстойг зааж өгнө. Ямар ч аргументгүйгээр өмнөх ачааллын хязгаарыг арилгана.

-n

Гүйцэтгэх тушаалуудыг хэвлээрэй, гэхдээ тэдгээрийг ажиллуулах хэрэггүй.

-o файл

Файлын файлаа хуучин хамаарлаасаа хуучин ч биш, файлын өөрчлөлтийг харгалзан ямар нэг шинэчлэл хийх хэрэггүй. Үндсэндээ файлыг маш хуучин гэж үздэг бөгөөд түүний дүрмүүдийг үл тоомсорлодог.

-p

Makefiles-ээс уншсанаас өгөгдлийн баазыг (дүрмүүд болон хувьсах утгуудыг) хэвлэх хэрэгтэй; Дараа нь ердийн буюу өөрөөр заагаагүй бол гүйцэтгэнэ. Энэ нь бас -v шилжүүлэлтийн өгсөн хувилбарын мэдээллийг бас хэвлэдэг (доороос харна уу). Ямар ч файлыг засварлахыг оролдохгүйгээр өгөгдлийн баазаа хэвлэхийн тулд make -p -f / dev / null тушаалыг ашиглаарай .

-q

`` Асуулт горим ''. Ямар ч тушаалыг ажиллуулж болохгүй, эсвэл ямар ч зүйлийг хэвлэ. Зорилтот зорилтууд нь аль хэдийн шинэчлэгдэж байгаа бол зүгээр л гарах гарцын статусыг тэгээр буцаана.

-r

Далд дүрмүүдийг ашиглахгүй болгох. Бас дагаж мөрдөх дүрмийн хувьд дагаваруудын үндсэн жагсаалтыг арилгах хэрэгтэй.

-s

Чимээгүй ажиллагаа; Тушаалуудыг ажиллуулсан тул тушаалыг хэвлэж болохгүй.

-S

-k тохируулгын үр дүнг цуцлах. Энэ бол хэзээ ч шаардлагатай рекурсив болгохгүйгээр -k нь дээд түвшний бүтээлтээс MAKEFLAGS-ээр өвлөгдөж болох юм уу эсвэл та MAKEFLAGS дотроо -k -г өөрийн хүрээлэлд тавьдаг бол хэзээ ч хийх шаардлагагүй.

Файлууд руу хүрээд (тэдгээрийг үнэхээр өөрчлөөгүйгээр шинэчлэгдсэн) Үүнийг хийх тушаалын талаар эрэн хайхыг завдахын тулд тушаалууд нь хийгдсэн гэж дүр үзүүлж байна.

-v

Зохиогчийн бүх эрх чөлөө, зохиогчийн жагсаалт, баталгаа байхгүй гэсэн мэдэгдлийг хэвлэ.

-w

Өөр бусад боловсруулалтын өмнө болон дараа ажлын сантай мессежийг хэвлэх. Энэ нь рекурсив болгох командын төвөгтэй үүрнээс алдааг шалгахад хэрэгтэй байж болох юм.

-W файл

Зорилтот файлыг саяхан өөрчилсөн байна. Хэрэв -a туг хэрэглэж байгаа бол энэ файлыг өөрчлөхөд юу тохиолдохыг танд харуулдаг. Хэрэв -n биш бол make тушаалыг ажиллуулахаасаа өмнө өгөгдсөн файл дээрх мэдрэгчийн командыг ажиллуулахтай бараг адилхан байдаг. Өөрчлөлт хийх цаг нь зөвхөн хиймэл төсөөлөлд өөрчлөгддөг.