1
я получил следующее сообщение об ошибкеMakefile: no rule to make target '* .o', необходимый для '*'. Стоп
make: *** No rule to make target `stretchy_buffer.o', needed by `tsh'. Stop
Попытка сделать этот Makefile
SRCS = stretchy_buffer.c def.c tsh_builtin_commands.c tsh_jobs.c tsh_main.c tsh_routines.c tsh_signals.c
OBJS = $(SRCS:.c=.o)
tsh: $(OBJS)
gcc -Wall -g -o tsh $(OBJS)
https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_10.html содержит сведения об использовании неявного (по умолчанию) правила компиляции, когда Makefile не содержит правила компиляции , – cm161
Вам нужна строка 'gcc'? Если мы сможем предположить, что 'CC = gcc' – jayant
@jayant, вы правы. Если мы объявим CC = gcc, то вместо прямого использования gcc можно использовать $ (CC). Так как оригинальный makefile напрямую использовал «gcc», я поддерживал его, чтобы избежать путаницы. – cm161