我正在用 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 $<