有人可以简单地解释一下吗?
答案 0 :(得分:1)
make
的主要功能是在makefile
中指定依赖项(通常命名为makefile
,但可能具有诸如MyRules.mk
之类的其他名称),其形式如下:
FileX: FileA FileB FileC Command to make FileX from FileA FileB FileC
鉴于此依赖性,如果FileA
,FileB
或FileC
中的任何一个的修改时间晚于FileX
的修改时间,则make
将执行命令以制作FileX
的新版本。
一个常见的依赖规则说对象文件依赖于C源文件和一些头文件,例如:
foo.o: foo.c foo.h project.h $(CC) -c foo.c
在用于大型项目的makefile中,文件的规则和列表通常更复杂,使用多个符号来传达命令,选项和文件列表。
另一条通用规则说要从目标文件中制作可执行文件:
MyProgram: foo.o bar.o baz.o $(LD) -o $@ $^
在这种情况下,“重新链接”仅表示make将执行命令以将对象再次链接到可执行文件。发生这种情况的原因是,其中一个先决条件文件(一个目标文件,其名称通常以.o
结尾)比目标可执行文件新,或者因为尚未写入makefile中的规则来正确表达依赖性。
避免这种情况只是了解make
及其规则和makefile的工作方式。