В этой строке правило для all
:
all: $(EXECUTABLE) $(LIBS)
переводится в:
all: concat -lstdc++fs
и это то, что вызывает ошибку, поскольку make
не знает, как для сборки -lstdc++fs
- в конце концов, это компилятор / компоновщик аргумент , а не файл.
Я не думаю, что $(LIBS)
должен быть там, он многое больше смысла иметь:
all: $(EXECUTABLE)
$(EXECUTABLE): $(OBJS)
$(CXX) $(LDFLAGS) $^ -o $@ $(LDLIBS) $(LIBS)
$(STRIP) $(EXECUTABLE)
Другими словами, используйте $(LIBS)
флаги для компиляции исполняемого файла, но не в качестве зависимости.