我正在尝试理解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
请有人帮我理解。我试着看一下教程,但是给出了不同的信息。
另外,我如何实际运行此测试?
答案 0 :(得分:1)
对于您的问题,以下makefile应该可以完成这项工作。如果您的makefile具有自定义名称(例如make
),则只需键入make -f <name_of_makefile>
或build_main
即可运行makefile
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
答案 1 :(得分:0)
progA.o: progA.c progB.o
gcc -c progA.c
通常一个makefile-“line”有三个组成部分: