Fix: Inga mål angivna och ingen makefile hittades.



Prova Vårt Instrument För Att Eliminera Problem

Oavsett om du arbetar med Ubuntu, Debian eller Red Hat, kan du se ett fel som läser göra: *** Inga mål angivna och ingen makefile hittades. Sluta. Eftersom detta är en allmän fråga relaterad till GNU Make som helhet kan du se det på otaliga Unix-implementeringar. Det betyder att det inte finns en fil som heter makefile eller Makefile i din nuvarande arbetskatalog. Lyckligtvis är det ett enkelt fel att fixa.



Metod 1: Hitta en Makefile i den aktuella katalogen

Du kanske vill prova att köra göra kommandot en gång till i den aktuella katalogen för att se om samma fel kastas mot dig. Detta är särskilt viktigt om du har öppnat ett nytt terminalfönster och redan försökt hitta rätt katalog eller om du har använt cd-kommandot sedan senaste gången du försökte köra GNU make.



Förutsatt att det gör det, försök att köra ls eller till dig kommando för att se vilka filer som finns i din nuvarande katalog. Du kanske inte befinner dig i rätt del av katalogträdet. Om du märker att du ser kataloger som hör till din rot / katalog eller din hem ~ katalog, vill du köra kommandot cd för att placera dig själv på rätt plats för att köra kommandot make.

Det finns en chans att du kan befinna dig ännu längre bort där du förväntas vara. I vårt exempel försökte vi köra make från / var / crash-katalogen och fann att det inte fungerade alls. Det kan inte förväntas att det körs härifrån, eftersom de enda filerna på den här platsen är från orelaterade kraschrapporter.

Mer än troligt kommer du att vilja köra ditt make-kommando från en katalog som finns någonstans i din hemkatalog. Om du till exempel byggde den senaste versionen av GNU nano från källan skulle du antagligen ha en katalog som ligger på ~ / nano-2.9.6 som du kan cd till och sedan köra make igen. Du kanske vill försöka springa ls en gång till innan du försöker göra för att säkerställa att det finns en makefil i katalogen som du kan bygga från.

Tänk på att du måste ha konfigurerat installationen först. Kommandot configure skapar den perfekta miljön för GNU-kompilatorn att blomstra. Om du inte hittar en makefile ens i rätt projektkatalog, kör sedan ./konfigurera medan du fortfarande är inne i den följt av göra kommando. Om detta kompileras korrekt kan du installera ditt projekt med sudo gör installation , men kom ihåg att du inte vill bygga något som root så att du aldrig vill köra sudo make eller något annat utanför installationen.

Metod 2: Ange en anpassad Makefile

Förutsatt att det löste problemet finns det inget mer du behöver göra. Det finns dock två speciella användningsfall för att överväga om den tidigare metoden inte rättade till ditt problem. Båda handlar om att skriva din egen fil för ett projekt som du har konfigurerat för hand.

Du kan ange en anpassad makefile som kallas något annat än bokstavligen makeefile med alternativet -f. Till exempel, om du hade en säkerhetskopia som heter makefile.bak kan du ange den genom att köra make -f makefile.bak från kommandoraden. Du kan ersätta makefile.bak med vilket filnamn som helst och du kan inkludera alternativet -i om du vill ignorera fel i en anpassad eller föråldrad makefile medan kompilatorn körs. Detta rekommenderas vanligtvis inte, eftersom du förmodligen vill redigera din makefile om det är något fel med det.

Det andra mycket nära relaterade användningsfallet innebär en situation där fallkänslighet är ett problem. Följande är alla separata filer på Unix sätt att göra affärer:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Anpassade konfigurerade program kanske inte kan känna igen en makefile med udda versaler. Om du har handskrivit det för ett kodningsprojekt du arbetar med, kommer du förmodligen att byta namn på det makefile men du kan använda alternativet -i för att säkerställa att GNU make kan hitta det. Kom ihåg att om du har skrivit allt korrekt kan du fortfarande köra ./konfigurera från ditt eget projekt för att tvinga det att skapa rätt miljö och undvika detta problem, till att börja med.

3 minuter läst