0

所以我有三个文件:

jarvismarch.c (includes "jarvismarchtools.h")
jarvismarchtools.c
jarvismarchtools.h

我想用 amakefile来编译上述文件。我该怎么办?

4

2 回答 2

2

典型的最小 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。一开始可能很简单,但是一旦您的项目发展壮大,我强烈建议您使用更完整的构建工具,例如SConsCMakeBoost.Build

于 2013-02-02T02:57:17.603 回答
1

假设您正在尝试构建 jarvismarch.exe:

jarvismarch.exe : jarvismarch.o jarvismarchtools.o
    $(CC) -o $@ $^

第二行的前导空格必须是 TAB 字符。

于 2013-02-02T03:19:43.090 回答