Sprievodcovia

Oprava: Nie sú zadané žiadne ciele a nebol nájdený žiadny makefile.

Či už pracujete s Ubuntu, Debian alebo Red Hat, môže sa zobraziť chyba s textom make: *** Nie sú zadané žiadne ciele a nebol nájdený žiadny makefile. Prestaň. Pretože sa jedná o všeobecný problém súvisiaci s GNU Make ako celkom, môžete ho vidieť na nespočetných implementáciách Unixu. Znamená to, že vo vašom súčasnom pracovnom adresári nie je súbor s názvom makefile alebo Makefile. Našťastie je to ľahká chyba, ktorú treba opraviť.

Metóda 1: Vyhľadanie súboru Makefile v aktuálnom adresári

Možno budete chcieť spustiť urobiť príkazom ešte raz v aktuálnom adresári a zisti, či sa na teba nevrhne rovnaká chyba. Toto je obzvlášť dôležité, ak ste otvorili nové okno terminálu a už ste sa pokúsili nájsť správny adresár, alebo ak ste použili príkaz cd od posledného pokusu o spustenie GNU make.

Za predpokladu, že to tak je, skúste spustiť program je alebo r príkazom uvidíte, ktoré súbory sa nachádzajú vo vašom aktuálnom adresári. Možno sa nenachádzate v pravej časti adresárového stromu. Ak si všimnete, že vidíte adresáre, ktoré patria do vášho koreňového adresára alebo domovského adresára ~, budete pravdepodobne chcieť spustiť príkaz cd, aby ste sa umiestnili na správnom mieste a spustili príkaz make.

Existuje šanca, že sa ocitnete ešte ďalej od miesta, kde sa od vás očakáva. V našom príklade sme vyskúšali spustenie značky make z adresára / var / crash a zistili sme, že vôbec nefunguje. Odtiaľto nemožno očakávať spustenie, pretože jediné súbory v tomto konkrétnom umiestnení sú z nesúvisiacich správ o zlyhaní.

Je viac než pravdepodobné, že budete chcieť spustiť príkaz make z adresára, ktorý sa nachádza niekde vo vašom domovskom adresári. Napríklad, ak ste zostavovali najnovšiu verziu GNU nano zo zdroja, pravdepodobne by ste mali v adresári ~ / nano-2.9.6 adresár, do ktorého by ste mohli CD a potom spustiť make znovu. Možno budete chcieť vyskúšať beh je ešte raz, než sa pokúsite urobiť, aby ste sa uistili, že v adresári je makefile, z ktorého môžete zostavovať.

Nezabudnite, že najskôr budete musieť nakonfigurovať inštaláciu. Príkaz configure vytvára dokonalé prostredie pre prekvitanie kompilátora GNU. Ak nenájdete makefile ani v správnom adresári projektu, spustite ./konfigurovať kým ste ešte v ňom, a potom urobiť príkaz. Ak sa to správne zostaví, môžete svoj projekt nainštalovať pomocou sudo urobiť inštaláciu, ale nezabudnite, že nechcete vytvárať nič ako root, takže už nikdy nebudete chcieť spustiť sudo make alebo čokoľvek iné mimo inštalácie.

Metóda 2: Zadanie vlastného súboru makefile

Za predpokladu, že sa tým problém vyriešil, už nemusíte robiť nič viac. Existujú dva špeciálne prípady použitia, ktoré je potrebné zvážiť, ak predchádzajúca metóda nevyriešila váš problém. Oboje zahŕňa napísanie vlastného súboru makefile pre projekt, ktorý ste konfigurovali ručne.

Vlastný makefile, ktorý sa nazýva niečo iné ako doslova makefile, môžete určiť pomocou voľby -f. Napríklad, ak ste mali záložný makefile s názvom makefile.bak, môžete ho určiť spustením make -f makefile.bak z príkazového riadku. Môžete nahradiť makefile.bak akýmkoľvek názvom súboru a môžete zahrnúť voľbu -i, ak chcete ignorovať chyby vo vlastnom alebo zastaranom makefile, keď je spustený kompilátor. Toto sa zvyčajne neodporúča, pretože pravdepodobne budete chcieť upraviť svoj makefile, ak s ním nie je niečo v poriadku.

Ďalším veľmi úzko súvisiacim prípadom použitia je situácia, keď je problémom citlivosť prípadu. Toto sú všetky samostatné súbory v systéme Unix na obchodovanie:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Vlastné nakonfigurované programy možno nebudú schopné rozpoznať makefile s nepárnym veľkým písmom. Ak ste ho napísali rukou pre kódovací projekt, na ktorom pracujete, pravdepodobne ho budete chcieť premenovať na súbor makefile, aj keď môžete použiť voľbu -i, aby ste sa ubezpečili, že ho GNU make dokáže nájsť. Pamätajte, že ak ste všetko napísali správne, stále môžete spustiť ./configure z vlastného projektu, aby ste ho prinútili vygenerovať správne prostredie a vyhnúť sa týmto problémom.

$config[zx-auto] not found$config[zx-overlay] not found