gcc 多个.c文件的makefile,同一目录

k4ymrczo  于 2022-11-13  发布在  其他
关注(0)|答案(2)|浏览(152)

我需要为4个文件创建一个makefile:q4.c,q3.c,q2.c,q1.c这4个程序的makefile格式是什么样的?我知道预处理、编译、汇编和清理这4个程序的必要标志,但是这4个程序的文件格式是什么样的呢?
旁注:所有程序都在同一目录中。
谢谢你的帮助- Dave L

1tuwyuhd

1tuwyuhd1#

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 documentation,了解一下它的功能。
此外,Make是一项相当古老、复杂的技术。它需要大量的时间和练习来掌握,并且给你的回应很少。还有其他的选择。我个人推荐CMake--它更容易,是一个可以为你生成构建脚本的更高级别的系统。它支持Makefile、Xcode等等。它绝对值得一看。

knpiaxh1

knpiaxh12#

如果您使用的是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
...

相关问题