Průvodci

Oprava: Nebyly zadány žádné cíle a nebyl nalezen žádný makefile.

Ať už pracujete s Ubuntu, Debian nebo Red Hat, může se zobrazit chyba, která zní make: *** Nebyly zadány žádné cíle a nebyl nalezen žádný makefile. Stop. Jelikož se jedná o obecný problém související s GNU Make jako celkem, můžete jej vidět na nesčetných implementacích Unixu. Znamená to, že ve vašem aktuálním pracovním adresáři není soubor s názvem makefile nebo Makefile. Naštěstí je to snadná chyba, kterou je třeba opravit.

Metoda 1: Vyhledání souboru Makefile v aktuálním adresáři

Možná budete chtít spustit udělat příkaz ještě jednou v aktuálním adresáři, abyste zjistili, zda se na vás nevrhne stejná chyba. To je obzvláště důležité, pokud jste otevřeli nové okno terminálu a již jste se pokusili najít správný adresář, nebo pokud jste použili příkaz cd od posledního pokusu o spuštění GNU make.

Za předpokladu, že ano, zkuste spustit je nebo dir příkaz, abyste zjistili, jaké soubory jsou ve vašem aktuálním adresáři. Možná se nenacházíte ve správné části adresářového stromu. Pokud si všimnete, že vidíte adresáře, které patří do vašeho kořenového adresáře nebo domovského adresáře ~, budete pravděpodobně chtít spustit příkaz cd, abyste se umístili na správném místě a spustili příkaz make.

Existuje šance, že se ocitnete ještě dále od místa, kde se od vás očekává. V našem příkladu jsme zkusili spustit make z adresáře / var / crash a zjistili jsme, že vůbec nefunguje. Nelze očekávat, že se spustí odtud, protože jediné soubory v tomto konkrétním umístění pocházejí z nesouvisejících zpráv o selhání.

Je více než pravděpodobné, že budete chtít spustit příkaz make z adresáře, který je umístěn někde ve vašem domovském adresáři. Pokud jste například vytvářeli nejnovější verzi GNU nano ze zdroje, pravděpodobně byste měli adresář umístěný na ~ / nano-2.9.6, do kterého byste mohli cd a poté spustit make znovu. Možná budete chtít zkusit běh je ještě jednou, než se pokusíte udělat, abyste se ujistili, že v adresáři je makefile, ze kterého můžete stavět.

Pamatujte, že nejprve budete muset nakonfigurovat instalaci. Příkaz configure vytváří perfektní prostředí pro rozkvět kompilátoru GNU. Pokud nenajdete soubor makefile ani ve správném adresáři projektu, spusťte jej ./konfigurovat když jste stále uvnitř, následuje udělat příkaz. Pokud se to správně zkompiluje, můžete svůj projekt nainstalovat pomocí sudo provést instalaci, ale pamatujte, že nechcete nic stavět jako root, takže už nikdy nebudete chtít spouštět sudo make nebo cokoli jiného mimo instalaci.

Metoda 2: Určení vlastního souboru makefile

Za předpokladu, že se tím problém vyřešil, není třeba nic dalšího dělat. Existují však dva speciální případy použití, které je třeba zvážit, pokud předchozí metoda problém nevyřešila. Oba zahrnují psaní vlastního souboru makefile pro projekt, který jste konfigurovali ručně.

Pomocí volby -f můžete určit vlastní makefile, který se nazývá něco jiného než doslovně makefile. Například pokud jste měli záložní makefile s názvem makefile.bak, můžete jej určit spuštěním make -f makefile.bak z příkazového řádku. Můžete nahradit makefile.bak jakýmkoli názvem souboru a můžete zahrnout volbu -i, pokud chcete ignorovat chyby ve vlastním nebo zastaralém makefile, když je spuštěn kompilátor. Toto se obvykle nedoporučuje, protože pokud se s ním něco pokazí, pravděpodobně budete chtít upravit svůj makefile.

Další velmi úzce související případ použití zahrnuje situaci, kdy je problém s citlivostí případu. Následují všechny samostatné soubory v unixovém způsobu podnikání:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Vlastní nakonfigurované programy nemusí být schopny rozpoznat makefile s lichými velkými písmeny. Pokud jste jej napsali ručně pro kódovací projekt, na kterém pracujete, pravděpodobně jej budete chtít přejmenovat na makefile, ačkoli byste mohli použít volbu -i, abyste se ujistili, že je GNU make schopen jej najít. Nezapomeňte, že pokud jste všechno napsali správně, můžete stále spustit ./configure ze svého vlastního projektu, abyste jej donutili generovat správné prostředí a vyhnout se tomuto problému.

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