Обратите внимание, что это не дубликат других вопросов с именем generic makefile.Generic Makefile не работает на FreeBSD
Я следовал всем инструкциям по другим вопросам о родовых Makefiles, и это код, который я придумал от:
CFLAGS = -c
CC = cc
SOURCES = $(wildcard *.cc)
OBJECTS = $(patsubst %.cc,%.o,%(SOURCES))
EXEC = run
all: build clean
build: $(OBJECTS)
$(CC) $(OBJECTS) -o $(EXEC)
%.o: %.cc
$(CC) $(CFLAGS) $<
clean:
rm *.o
Однако, когда я исполняю make
с файлом под названием test.cc
в мой каталог, он дает мне ошибку: followig
cc -o run
cc: error: no input files
*** Error code 1
Stop.
make: stopped in /somewhere
Обратите внимание, что я на FreeBSD и команды make
и cc
являются те, которые приходят с ОС.
Примечание. Если файлы * .cc содержат C++, вы должны использовать компилятор C++. 'CC = cc', скорее всего, является компилятором C. – Jens