Поправка: Не са посочени цели и не е намерен makefile.



Опитайте Нашия Инструмент За Премахване На Проблемите

Независимо дали работите с Ubuntu, Debian или Red Hat, може да видите грешка, която гласи make: *** Не са посочени цели и не е намерен makefile. Спри се. Тъй като това е общ проблем, свързан с GNU Make като цяло, може да го видите на безброй реализации на Unix. Това означава, че в текущата ви работна директория няма файл, наречен makefile или Makefile. За щастие това е лесна за отстраняване грешка.



Метод 1: Намиране на Makefile в текущата директория

Може да опитате да стартирате направи команда още веднъж в текущата директория, за да видите дали същата грешка ще бъде хвърлена към вас. Това е особено важно, ако сте отворили нов терминален прозорец и вече сте се опитали да намерите правилната директория или ако сте използвали командата cd от последния път, когато сте се опитали да стартирате GNU make.



Ако приемем, че има, опитайте да стартирате ls или за теб команда, за да видите какви файлове са в текущата ви директория. Може да не сте в дясната част на дървото на директориите. Ако забележите, че виждате директории, които принадлежат на вашата root / директория или вашата домашна ~ директория, тогава ще искате да изпълните командата cd, за да се позиционирате на правилното място, за да изпълните командата make.

Има шанс да се окажете още по-далеч от мястото, където се очаква да бъдете. В нашия пример се опитахме да стартираме make от директорията / var / crash и установихме, че изобщо не работи. Не може да се очаква да се стартира от тук, тъй като единствените файлове в това конкретно местоположение са от несвързани доклади за сривове.

Повече от вероятно ще искате да стартирате командата make от директория, която се намира някъде във вашата домашна директория. Например, ако създавате най-новата версия на GNU nano от източника, вероятно ще имате директория, разположена на ~ / nano-2.9.6, в която можете да cd и след това да стартирате make отново. Може да опитате да изпълните ls още веднъж, преди да се опитате да направите, за да сте сигурни, че в директорията има makefile, от който можете да изградите.

Имайте предвид, че първо ще трябва да сте конфигурирали инсталацията. Командата configure създава идеалната среда за процъфтяване на компилатора GNU. Ако не намирате makefile дори в правилната директория на проекта, тогава стартирайте ./configure докато все още сте вътре в него, последвано от направи команда. Ако това се компилира правилно, можете да инсталирате вашия проект с sudo make install , но не забравяйте, че не искате да изграждате нищо като root, така че никога няма да искате да стартирате sudo make или нещо друго извън инсталацията.

Метод 2: Посочване на персонализиран Makefile

Ако приемем, че проблемът е решен, няма какво повече да правите. Има обаче два специални случая на употреба, които да вземете предвид, ако предишният метод не е коригирал проблема ви. И двете включват писане на ваш собствен makefile за проект, който сте конфигурирали на ръка.

Можете да посочите персонализиран makefile, който се нарича нещо различно от буквално makefile, като използвате опцията -f. Например, ако имате резервен makefile, наречен makefile.bak, тогава можете да го посочите, като стартирате make -f makefile.bak от командния ред. Можете да замените makefile.bak с произволно име на файл и бихте могли да включите опцията -i, ако искате да игнорирате грешки в персонализиран или остарял makefile, докато компилаторът работи. Това обикновено не се препоръчва, тъй като вероятно ще искате да редактирате вашия makefile, ако има нещо нередно в него.

Другият много тясно свързан случай на употреба включва ситуация, при която чувствителността на регистъра е проблем. По-долу са всички отделни файлове в начина на бизнес на Unix:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Конфигурираните по поръчка програми може да не са в състояние да разпознаят makefile с нечетна главна буква. Ако сте го написали на ръка за проект за кодиране, по който работите, вероятно ще искате да го преименувате на makefile, въпреки че бихте могли да използвате опцията -i, за да сте сигурни, че GNU make може да го намери. Не забравяйте, че ако сте написали всичко правилно, тогава все още можете да стартирате ./configure от собствения си проект, за да го принудите да генерира правилната среда и да избегнете този проблем.

3 минути четене