Popravek: Ni določenih ciljev in ni bila najdena datoteka make.



Preizkusite Naš Instrument Za Odpravo Težav

Ne glede na to, ali delate z Ubuntujem, Debianom ali Red Hatom, boste morda videli napako, ki se glasi make: *** Ni določenih ciljev in ni mogoče najti make datoteke. Nehaj. Ker je to splošno vprašanje, povezano z GNU Make kot celoto, ga boste morda videli na neštetih implementacijah Unixa. To pomeni, da v vašem trenutnem delovnem imeniku ni datoteke z imenom makefile ali Makefile. Na srečo je to enostavno odpraviti.



1. način: Iskanje datoteke Make v trenutnem imeniku

Morda boste želeli poskusiti zagnati naredite ukaz še enkrat v trenutnem imeniku, da preverite, ali se vam pojavi enaka napaka. To je še posebej pomembno, če ste odprli novo okno terminala in že poskušali najti pravi imenik ali če ste od zadnjega poskusa zagnati GNU make uporabljali ukaz cd.



Ob predpostavki, da je, poskusite zagnati ls ali tebi ukaz, da vidite, katere datoteke so v vašem trenutnem imeniku. Morda niste v desnem delu drevesa imenikov. Če opazite, da vidite mape, ki spadajo v vaš root / directory ali vaš home ~ imenik, potem boste želeli zagnati ukaz cd, da se postavite na pravo mesto za zagon ukaza make.

Obstaja možnost, da se znajdete še dlje od mesta, kjer pričakujete. V našem primeru smo poskusili zagnati make iz imenika / var / crash in ugotovili, da sploh ni deloval. Ne moremo pričakovati, da se bo zagnalo od tu, saj so edine datoteke na tej lokaciji iz nepovezanih poročil o zrušitvah.

Več kot verjetno boste želeli zagnati ukaz make iz imenika, ki se nahaja nekje znotraj vašega domačega imenika. Če ste na primer iz vira gradili najnovejšo različico GNU nano, bi verjetno imeli imenik na ~ / nano-2.9.6, v katerega bi lahko cd-jali in znova zagnali make. Morda boste želeli poskusiti s tekom ls še enkrat, preden poskusite narediti, da zagotovite, da se v imeniku nahaja datoteka make, iz katere lahko gradite.

Upoštevajte, da boste morali najprej konfigurirati namestitev. Ukaz configure ustvari popolno okolje za uspeh prevajalnika GNU. Če datoteke ne najdete niti v pravilnem imeniku projekta, zaženite ./konfiguriraj medtem ko ste še vedno v njej, sledi ji naredite ukaz. Če se to pravilno prevede, lahko svoj projekt namestite z sudo make install , vendar ne pozabite, da ne želite zgraditi ničesar kot root, zato nikoli ne boste želeli zagnati sudo make ali česar koli drugega zunaj namestitve.

2. način: Določanje datoteke po meri

Ob predpostavki, da je težava odpravljena, ni treba storiti nič več. Vendar obstajata dva posebna primera uporabe, če prejšnja metoda ni odpravila težave. Oba vključujeta pisanje lastne make datoteke za projekt, ki ste ga konfigurirali ročno.

Z možnostjo -f lahko določite datoteko po meri, ki se imenuje drugače kot dobesedno makefile. Če ste na primer imeli varnostno datoteko makefile, imenovano makefile.bak, jo lahko določite z zagonom make -f makefile.bak iz ukazne vrstice. Makefile.bak lahko zamenjate s katerim koli imenom datoteke, možnost -i pa lahko vključite, če želite med zagonom prevajalnika prezreti napake v prilagojeni ali zastareli datoteki make. Običajno to ni priporočljivo, saj boste verjetno želeli urediti svojo datoteko make, če je z njo kaj narobe.

Drugi zelo tesno povezan primer uporabe vključuje situacijo, kjer je pomembna občutljivost na velike in male črke. Spodaj so ločene datoteke v načinu poslovanja Unix:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Po meri konfigurirani programi morda ne bodo mogli prepoznati datoteke datotek z lihimi črkami. Če ste ga napisali na roko za projekt kodiranja, pri katerem delate, ga boste verjetno želeli preimenovati v datoteko makefile, vendar lahko z možnostjo -i zagotovite, da jo bo GNU make lahko našel. Ne pozabite, da če ste vse pravilno napisali, lahko še vedno zaženete ./configure iz lastnega projekta, da ga prisilite, da ustvari pravo okolje in se izogne ​​tej težavi.

3 minute branja