Fix: Geen doelen gespecificeerd en geen makefile gevonden.
Of je nu met Ubuntu, Debian of Red Hat werkt, je ziet mogelijk een fout die make maakt: *** Geen doelen gespecificeerd en geen makefile gevonden. Hou op. Omdat dit een algemene kwestie is die gerelateerd is aan GNU Make als geheel, zou je het kunnen zien in talloze Unix-implementaties. Het betekent dat er geen bestand met de naam makefile of Makefile in je huidige werkmap staat. Gelukkig is dat een gemakkelijke fout om te verhelpen.
Methode 1: Een Makefile zoeken in de huidige directory
Misschien wilt u proberen de opdracht make nog een keer in de huidige directory uit te voeren om te zien of dezelfde fout op u terechtkomt. Dit is vooral belangrijk als u een nieuw terminalvenster hebt geopend en al hebt geprobeerd de juiste map te vinden of als u de opdracht cd hebt gebruikt sinds de laatste keer dat u GNU make probeerde te gebruiken.
Ervan uitgaande dat dit het geval is, probeer het ls of dir commando uit te voeren om te zien welke bestanden zich in uw huidige map bevinden. U bevindt zich mogelijk niet in het rechtergedeelte van de directorystructuur. Als je merkt dat je mappen ziet die in je root / map of in je home ~ map thuishoren, dan wil je de opdracht cd uitvoeren om jezelf op de juiste plaats te plaatsen om de opdracht make uit te voeren.
Er is een kans dat je misschien nog verder weg bent van waar je verwacht wordt te zijn. In ons voorbeeld hebben we make uit de directory / var / crash uitgevoerd en vastgesteld dat het helemaal niet werkte. Er kan niet worden verwacht dat dit vanaf hier wordt uitgevoerd, omdat de enige bestanden op deze specifieke locatie afkomstig zijn van niet-gerelateerde crashmeldingen.
Meer dan waarschijnlijk wilt u uw make-opdracht uitvoeren vanuit een map die zich ergens in uw basismap bevindt. Bijvoorbeeld, als je de laatste versie van GNU nano vanaf de bron zou bouwen, dan zou je waarschijnlijk een map hebben op ~ / nano-2.9.6 waar je naar toe zou kunnen cd en vervolgens make opnieuw uitvoeren. Misschien wil je nog een keer proberen om ls uit te voeren voordat je probeert om er zeker van te zijn dat er een makefile is in de map waaruit je kunt bouwen.
PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikkenHoud er rekening mee dat u de installatie eerst moet hebben geconfigureerd. Met de opdracht configure maakt u de perfecte omgeving voor de GNU-compiler om te floreren. Als je geen makefile vindt, zelfs niet in de juiste projectdirectory, voer dan ./configure uit terwijl je er nog steeds in zit, gevolgd door de opdracht make . Als dit correct compileert, dan kun je je project installeren met sudo make install, maar onthoud dat je niets als root wilt bouwen, dus je wilt nooit sudo make of iets anders buiten installatie doen.
Methode 2: Een aangepaste Makefile specificeren
Ervan uitgaande dat het probleem is opgelost, hoef je niets meer te doen. Er zijn echter twee gevallen voor speciale gevallen om te overwegen of de vorige methode uw probleem niet heeft opgelost. Deze omvatten beide het schrijven van je eigen makefile voor een project dat je met de hand hebt geconfigureerd.
Je kunt een aangepast makefile specificeren dat iets anders dan letterlijk maakbaar wordt genoemd door de -f optie te gebruiken. Als u bijvoorbeeld een backup makefile genaamd makefile.bak had, kunt u dit specificeren door make -f makefile.bak vanaf de opdrachtregel uit te voeren. U kunt makefile.bak vervangen door een willekeurige bestandsnaam en u kunt de optie -i opnemen als u fouten in een aangepaste of verouderde makefile wilt negeren terwijl de compiler wordt uitgevoerd. Dit wordt meestal niet aanbevolen, omdat je waarschijnlijk je makefile wilt bewerken als er iets mis mee is.
De andere zeer nauw verwante use-case betreft een situatie waarbij hoofdlettergevoeligheid een probleem is. Hieronder volgen alle afzonderlijke bestanden op de Unix-manier om zaken te doen:
- Makefile
- makefile
- makeFile
- MakeFile
- makefile
Aangepaste geconfigureerde programma's herkennen mogelijk geen makefile met oneven hoofdlettergebruik. Als je het met de hand geschreven hebt voor een codeerproject waar je aan werkt, dan wil je het misschien makefile hernoemen, hoewel je de -i optie zou kunnen gebruiken om ervoor te zorgen dat GNU make in staat is om het te vinden. Onthoud dat als u alles correct hebt geschreven, u nog steeds ./configure van uw eigen project kunt uitvoeren om het te dwingen de juiste omgeving te genereren en om dit probleem te vermijden, om te beginnen.
PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken