Ошибки Make
No rule to make target
make: *** No rule to make target 'main.cpp', needed by 'main.o'. Stop.
GNUmakefile:1: *** missing separator. Stop.
Если вы видите ошибку
GNUmakefile:1: *** missing separator. Stop.
Обратите внимание на GNUmakefile:1:
1 - это номер строки, в которой произошла ошибка
Возможно где-то вместо табуляции затесался пробел. Напоминаю, что в makefile отступы должны быть заданы табуляциями.
Либо таргет перечислен без двоеточия .PHONY clean вместо .PHONY: clean
Либо какая-то похожая ошибка.
Syntax error : end of file unexpected (expecting "fi")
Если вы видите ошибку
Syntax error : end of file unexpected (expecting "fi")
Обратите внимание на расстановку ; в конце выражений и расстановку \ при переносе строк.
Изучите этот
пример
и сравните со своим кодом.
OLDPWD not set
Если внутри makefile вы выполняете cd и видите ошибку
OLDPWD not set
Попробуйте сперва явно перейти в текущую директорию с помощью CURDIR
cd $(CURDIR)
@echo: command not found
Если внутри makefile вы пытаетесь подавить вывод echo и получаете
@echo: command not found
Скорее всего echo это не первая команда в строке
НЕПРАВИЛЬНО:
if [ ! -f /home/andrei/Downloads/iso/centos_netinstall.iso ]; then \ rm ./CentOS-7-x86_64-NetInstall-*; \ wget -r -np "http://builder.hel.fi.ssh.com/privx-builds/latest/PrivX-master/Deliverables/" -A "CentOS-7-x86_64-NetInstall-2009.iso
-*.iso; \ else \ @echo "WARNING: centos_netinstall.iso already exists"; \ПРАВИЛЬНО:
@if [ ! -f /home/andrei/Downloads/iso/centos_netinstall.iso ]; then \ rm ./CentOS-7-x86_64-NetInstall-*; \ wget -r -np "http://builder.hel.fi.ssh.com/privx-builds/latest/PrivX-master/Deliverables/" -A "CentOS-7-x86_64-NetInstall-2009.iso
-*.iso; \ else \ echo "WARNING: centos_netinstall.iso already exists"; \-bash: make: command not found
Ошибка
-bash: make: command not found
Означает, что make не установлен.
Установить make в rpm системах можно с помощью yum в deb система - с помощью apt
sudo yum -y install make
sudo apt -y install make
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги