Ваш Makefile не содержит никаких правил для сборки исполняемого файла.Это правило является самым близким - оно создает зависимость между этими 3 объектными файлами и целью, называемой "exec".
exec: fluxo.o validar.o ficheiroParaMemoria.o
Если вы хотите собрать "exec" из этих 3 объектных файлов, вам нужно расширитьПравило также включает команду, чтобы сделать это.
exec: fluxo.o validar.o ficheiroParaMemoria.o
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
В команде $@
используется для указания цели, поэтому в этом случае будет "exec".$^
являются зависимостями.
Причина, по которой вам не нужно добавлять команды для создания файлов .o, заключается в том, что make включает встроенное правило для сборки файлов .o из файла .c файлато же имя.Существует также встроенное правило для сборки исполняемого файла из .o или .c с тем же именем, но в этом случае это не очень полезно, так как он не будет включать другие 2 .o файла
Кроме того, LDFLAGS
обычно используется для указания параметров компоновки, а не параметров компиляции, поэтому вам не нужно указывать "-g"