我正在尝试理解 makefile。我有以下文件:
main.c
(includes progA.c progB.c progC.c)
progA.c
(includes progA.h)
progB.c
(includes progA.c)
progC.c
我尝试创建一个 makefile,但不确定它是否正确:
main.o: main.c progA.o progB.o progC.o
gcc -c main.c
progA.o: progA.c progB.o
gcc -c progA.c
progB.o: progB.c progB.h
gcc -c progB.c
progC.o: progC.c
gcc -c progC.c
有人可以帮我理解吗?我尝试查看教程,但给出了不同的信息。
另外,我如何实际运行它来测试?
最佳答案
对于您的问题,以下 makefile 应该可以解决问题。您只需输入 make
即可运行 makefile。或make -f <name_of_makefile>
如果您的 makefile 有自定义名称(例如 build_main
)
all: main
main: main.o progA.o progB.o progC.o
gcc -o main main.o progA.o progB.o progC.o
main.o: main.c
gcc -c main.c
progA.o: progA.c
gcc -c progA.c
progB.o: progB.c
gcc -c progB.c
progC.o: procC.c
gcc -c progC.c
要构建可执行文件,对象 main.o progA.o progB.o progC.o
是必需的,如 main:
之后的行中指定的那样.
编译规则main.o progA.o progB.o
和progC.o
由以下四个部分给出。
makefile的一般格式是
target: dependencies
[tab] system command
关于创建带有依赖项的 makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19606652/