Popravak: Nisu navedeni ciljevi i nije pronađena make datoteka.



Isprobajte Naš Instrument Za Uklanjanje Problema

Bez obzira radite li s Ubuntuom, Debianom ili Red Hatom, možda ćete vidjeti pogrešku koja glasi make: *** Nisu navedeni ciljevi i nije pronađena make datoteka. Stop. Budući da je ovo općenito pitanje vezano za GNU Make u cjelini, mogli biste ga vidjeti na bezbroj implementacija Unixa. To znači da u vašem trenutnom radnom direktoriju nema datoteke koja se naziva makefile ili Makefile. Srećom, to je lako ispraviti pogrešku.



Metoda 1: Pronalaženje datoteke Make u trenutnom direktoriju

Možda biste trebali pokušati pokrenuti napraviti naredite još jednom u trenutnom direktorijumu da vidite hoće li vam se pojaviti ista pogreška. To je posebno važno ako ste otvorili novi prozor terminala i već pokušali pronaći pravi direktorij ili ako ste koristili naredbu cd od posljednjeg pokušaja pokretanja GNU makea.



Pod pretpostavkom da jest, pokušajte pokrenuti ls ili tebi naredba da biste vidjeli koje su datoteke u vašem trenutnom direktoriju. Možda niste u desnom dijelu stabla direktorija. Ako primijetite da vidite direktorije koji pripadaju vašem root / direktoriju ili vašem home ~ direktoriju, tada ćete htjeti pokrenuti naredbu cd da biste se postavili na pravo mjesto za pokretanje naredbe make.

Postoji šansa da se nađete još dalje od mjesta na kojem se očekuje. U našem smo primjeru pokušali pokrenuti make iz direktorija / var / crash i utvrdili da to uopće ne radi. Ne može se očekivati ​​pokretanje odavde, jer su jedine datoteke na ovom mjestu iz nepovezanih izvješća o padu.

Vjerojatnije ćete željeti pokrenuti naredbu make iz direktorija koji se nalazi negdje unutar vašeg kućnog direktorija. Na primjer, ako ste gradili najnoviju verziju GNU nano iz izvora, vjerojatno biste imali direktorij smješten na ~ / nano-2.9.6 u koji biste mogli cd-ati, a zatim ponovo pokrenuti make. Možda biste htjeli pokušati trčati ls još jednom prije nego što pokušate napraviti kako biste osigurali da se u direktoriju nalazi datoteka datoteka za izradu.

Imajte na umu da ćete prvo morati konfigurirati instalaciju. Naredba configure stvara savršeno okruženje za procvat GNU kompajlera. Ako ne pronađete make datoteku čak ni u ispravnom direktoriju projekta, pokrenite ./konfigurirati dok ste još uvijek u njemu, a slijedi ga napraviti naredba. Ako se ovo pravilno kompajlira, svoj projekt možete instalirati s sudo make install , ali imajte na umu da ne želite ništa graditi kao root, tako da nikada nećete htjeti pokrenuti sudo make ili bilo što drugo izvan instalacije.

2. metoda: Određivanje prilagođene datoteke datoteka

Pod pretpostavkom da je to riješilo problem, ne morate više ništa učiniti. Međutim, postoje dva posebna slučaja upotrebe koja treba razmotriti ako prethodna metoda nije riješila vaš problem. Oboje uključuje pisanje vlastite make datoteke za projekt koji ste ručno konfigurirali.

Pomoću opcije -f možete odrediti prilagođenu datoteku izrade koja se naziva drugačije od doslovno izrade datoteke. Na primjer, ako ste imali sigurnosnu kopiju makefile pod nazivom makefile.bak, tada biste je mogli navesti pokretanjem make -f makefile.bak iz naredbenog retka. Možete zamijeniti makefile.bak bilo kojim nazivom datoteke i mogli biste uključiti opciju -i ako želite ignorirati pogreške u prilagođenoj ili zastarjeloj make datoteci dok je kompajler pokrenut. To se obično ne preporučuje, jer ćete vjerojatno htjeti urediti svoju make datoteku ako s njom nešto nije u redu.

Drugi vrlo usko povezan slučaj upotrebe uključuje situaciju u kojoj je problem osjetljivost na velika i mala slova. Slijede sve zasebne datoteke na način poslovanja tvrtke Unix:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Prilagođeni konfigurirani programi možda neće moći prepoznati datoteku izrade s čudnim velikim slovima. Ako ste ga napisali rukom za projekt kodiranja na kojem radite, vjerojatno ćete ga htjeti preimenovati u makefile, iako biste mogli koristiti opciju -i kako biste osigurali da ga GNU make može pronaći. Imajte na umu da ako ste sve dobro napisali, za početak još uvijek možete pokrenuti ./configure iz vlastitog projekta kako biste ga natjerali da generira pravo okruženje i izbjeći ovaj problem.

3 minute čitanja