2

我需要为 4 个文件创建一个 makefile:q4.c、q3.c、q2.c、q1.c 这 4 个文件的 makefile 格式是什么样的?我知道所有必要的标志,预处理、编译、汇编和清理,但是对于 4 个程序,文件的格式会是什么样子?

旁注:所有程序都在同一个目录中。

谢谢你的帮助-戴夫 L

4

2 回答 2

4

Makefile 是一种非常全面和灵活的方式来描述构建过程及其操作、依赖项等。有很多可能的编写方式,因此您的问题永远不会有一个简单的单一答案。例如,对于您的简单案例,您的 Makefile 可能如下所示:

BIN = q1 q2 q3 q4

all: $(BIN)

clean:
    $(RM) $(BIN)

如果您经常添加和删除源文件,并且每个文件都应编译为独立的可执行文件,它也可能看起来像这样:

SRC = $(wildcard *.c)
BIN = $(patsubst %.c,%,$(SRC))

all: $(BIN)

clean:
    $(RM) $(BIN)

根据项目的规模和要求,它可能会变得越来越复杂。

我建议您从像上面的示例这样简单的东西开始,并阅读 Make文档以了解它可以做什么。

此外,Make 是相当古老、复杂的技术。掌握它需要大量时间和练习,而您的反应却很少。有替代方案。我个人推荐CMake - 它更容易,更高级别的系统可以为您生成构建脚本。它支持 Makefiles、Xcode 等等。看看肯定更糟。

于 2012-06-30T03:08:59.303 回答
2

如果您使用的是 gnu make,并且每个标志都相同:

CFLAGS=-ffoo -O2 -fguess-at-hard-math
all: q1 q2 q3 q4

否则,您可以明确指定每个

all: q1 q2 q3 q4
q1: q1.c
    gcc -o q1 q1.c
q2: q2.c 
    gcc -o q2 -fq2-flags q2.c
...
于 2012-06-30T03:01:35.997 回答