Vejledninger

Fix: Ingen mål er angivet og ingen makefile fundet.

Uanset om du arbejder med Ubuntu, Debian eller Red Hat, kan du muligvis se en fejl, der læser make: *** Ingen mål specificeret og ingen makefile fundet. Hold op. Da dette er et generelt problem relateret til GNU Make som helhed, kan du muligvis se det på utallige Unix-implementeringer. Det betyder, at der ikke er en fil, der hedder makefile eller Makefile i din nuværende arbejdsmappe. Heldigvis er det en let fejl at rette.

Metode 1: Find en Makefile i den aktuelle telefonbog

Du ønsker måske at prøve at køre lave kommando endnu en gang i den aktuelle mappe for at se, om den samme fejl bliver kastet mod dig. Dette er især vigtigt, hvis du har åbnet et nyt terminalvindue og allerede har forsøgt at finde den rigtige mappe, eller hvis du har brugt cd-kommandoen siden sidste gang, du prøvede at køre GNU make.

Forudsat at det gør det, så prøv at køre ls eller dir kommando for at se, hvilke filer der er i dit aktuelle bibliotek. Du er muligvis ikke i den rigtige del af katalogtræet. Hvis du bemærker, at du ser mapper, der hører til i din rod / mappe eller dit hjem ~ bibliotek, så vil du køre cd-kommandoen for at placere dig selv på det rigtige sted til at køre make-kommandoen.

Der er en chance for, at du måske befinder dig endnu længere væk fra det sted, hvor du forventes at være. I vores eksempel forsøgte vi at køre make fra / var / crash-biblioteket og fandt, at det slet ikke fungerede. Det kan ikke forventes at køre herfra, da de eneste filer på denne bestemte placering er fra ikke-relaterede nedbrudsrapporter.

Mere end sandsynligt vil du køre din make-kommando fra et bibliotek, der er placeret et eller andet sted inde i dit hjemmekatalog. For eksempel, hvis du byggede den nyeste version af GNU nano fra kilden, ville du sandsynligvis have et bibliotek placeret på ~ / nano-2.9.6, som du kunne cd til og derefter køre make igen. Du vil måske prøve at løbe ls endnu en gang, før du prøver at skabe for at sikre, at der er en makefile placeret i biblioteket, som du kan bygge fra.

Husk, at du først skal have konfigureret installationen. Konfigurer kommandoen skaber det perfekte miljø for GNU compileren til at blomstre. Hvis du ikke finder en makefile selv i den rigtige projektmappe, skal du køre ./konfigurer mens du stadig er inde i det efterfulgt af lave kommando. Hvis dette kompileres korrekt, kan du installere dit projekt med sudo gør installation, men husk at du ikke vil opbygge noget som root, så du aldrig vil køre sudo make eller andet uden for installationen.

Metode 2: Angivelse af en brugerdefineret Makefile

Forudsat at det løste problemet, er der intet mere du skal gøre. Der er dog to specielle brugssager, der skal overvejes, om den tidligere metode ikke løste dit problem. Disse involverer begge at skrive din egen makefile til et projekt, som du har konfigureret i hånden.

Du kan specificere en brugerdefineret makefile, der kaldes noget andet end bogstaveligt talt makefile ved at bruge indstillingen -f. For eksempel, hvis du havde en backup makefile kaldet makefile.bak, kan du muligvis specificere den ved at køre make -f makefile.bak fra kommandolinjen. Du kan erstatte makefile.bak med ethvert filnavn overhovedet, og du kan medtage indstillingen -i, hvis du vil ignorere fejl i en brugerdefineret eller forældet makefile, mens compileren kører. Dette anbefales normalt ikke, da du sandsynligvis vil redigere din makefile, hvis der er noget galt med den.

Den anden meget nært beslægtede brugssag involverer en situation, hvor sagsfølsomhed er et problem. Følgende er alle separate filer i Unix måde at drive forretning på:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Brugerdefinerede konfigurerede programmer kan muligvis ikke genkende en makefile med ulige store bogstaver. Hvis du har håndskrevet det til et kodningsprojekt, du arbejder på, vil du sandsynligvis omdøbe det makefile, selvom du kunne bruge -i-indstillingen til at sikre, at GNU make er i stand til at finde det. Husk, at hvis du har skrevet alt korrekt, kan du stadig køre ./configure fra dit eget projekt for at tvinge det til at skabe det rigtige miljø og undgå dette problem til at begynde med.