所以我有三个文件:
jarvismarch.c (includes "jarvismarchtools.h")
jarvismarchtools.c
jarvismarchtools.h
我想用 amakefile
来编译上述文件。我该怎么办?
典型的最小 makefile 如下所示:
OBJ = jarvismarch.o jarvismarchtools.o
all: $(OBJ)
$(CC) -o jarvismarch $(OBJ)
考虑到asveikau的评论并添加一个干净的目标,它变成:
OBJ = jarvismarch.o jarvismarchtools.o
BIN = jarvismarch
CFLAGS = -Wall -pedantic -ansi
all: $(BIN)
$(BIN): $(OBJ)
$(CC) -o @ $(OBJ)
clean:
rm -f $(OBJ) $(BIN)
(Windows用户需要使用.obj
代替.o
)
我强烈建议不要使用 make。一开始可能很简单,但是一旦您的项目发展壮大,我强烈建议您使用更完整的构建工具,例如SCons、CMake或Boost.Build。
假设您正在尝试构建 jarvismarch.exe:
jarvismarch.exe : jarvismarch.o jarvismarchtools.o
$(CC) -o $@ $^
第二行的前导空格必须是 TAB 字符。