Я пишу небольшую реализацию игры жизни Конвея в C. Исходный код разделен на три файла: main.c
и functions.c
/ functions.h
, куда я помещаю определения и объявления своих функций. *
Теперь, чтобы создать сетку ячеек, у меня есть матрица этого типа:
Cell grid[GRID_HEIGHT][GRID_WIDTH];
, где GRID_HEIGHT
и GRID_WIDTH
- константы, определенные в functions.h
:
#define GRID_HEIGHT 10
#define GRID_WIDTH 10
Программа работает нормально, скомпилирована с make и Makefile. Но проблема в том, что: если я пытаюсь изменить GRID_HEIGHT
или GRID_WIDTH
, когда я снова запускаю свой Makefile, он говорит, что все файлы обновлены!
Я попытался скомпилировать, используя старый способ gcc main.c etc.
, и он работает так, как должен. Так почему же make не перекомпилирует исходный код?
Это мой Makefile:
CC = gcc
OBJECTS = main.o functions.o
Game\ of\ Life : $(OBJECTS)
$(CC) $(OBJECTS) -o Game\ of\ Life -lncurses
%.o : %.c
$(CC) -c $<