在手机上怎么做微电影网站,电商优惠券网站 建设,苏州 互联网企业,WordPress手动切换主题1 .PHONY 和 all .PHONY 是 GNU make 工具中的一个特殊指令#xff0c;用于指示某个目标是一个伪目标。伪目标并不对应于实际的文件#xff0c;而是用来执行一系列命令的标识符。使用 .PHONY 的好处包括避免与现有文件同名造成的冲突#xff0c;以及提高 make 的执行效率用于指示某个目标是一个伪目标。伪目标并不对应于实际的文件而是用来执行一系列命令的标识符。使用 .PHONY 的好处包括避免与现有文件同名造成的冲突以及提高 make 的执行效率因为 make 不会尝试去查找伪目标对应的文件或其隐含规则。 all 通常是 Makefile 中的默认目标它代表了一系列其他目标的集合。在 all 目标中可以列出所有需要构建的目标文件使得用户只需输入 make 命令即可构建这些文件。如果 all 目标有依赖关系make 会检查这些依赖是否需要更新(可执行程序的修改时间是否早于源代码的修改时间)如果需要则执行相应的命令来更新它们。
示例 假设你有两个 C 文件 main1.c 和 main2.c‘你想要分别编译它们并生成可执行文件 main1 和 main2。你可以在 Makefile 中定义 all 目标并让它依赖于这两个可执行文件。然后你可以为每个可执行文件定义单独的规则指定它们的源代码文件和编译命令。这样当你执行 make 命令时make 会自动编译这两个文件并生成相应的可执行文件。
.PHONY:all
all: main1 main2main1: main1.cgcc -o $ $^ 后面解释main2: main2.cgcc -o $ $^
如果你还想要定义一个清理目标 clean用于删除生成的可执行文件你可以这样做
.PHONY
all: main1 main2 cleanmain1: main1.cgcc main1.c -o main1main2: main2.cgcc main2.c -o main2clean:rm -f main1 main2 然而如果 clean 目标没有任何依赖make 可能会忽略它因为它认为 clean 文件已经存在。为了确保 clean 目标总是被执行你可以使用 .PHONY 来声明 clean 是一个伪目标
.PHONY:all
all: main1 main2 cleanmain1: main1.cgcc main1.c -o main1main2: main2.cgcc main2.c -o main2.PHONY: clean
clean:rm -f main1 main2 现在无论 clean 文件是否存在执行 make clean 都会删除 main1 和 main2 文件。
2 gcc -o $ $^
gcc -o $ $^ 是一个在Makefile中常用的规则模式用于指定如何编译和链接一个目标文件。这里的 $ 和 $^ 是Makefile的自动变量
● $ 代表当前规则的目标文件名。 ● $^ 代表所有依赖于当前目标文件的源文件列表。 因此gcc -o $ $^ 的意思是使用 GCC 编译器将所有依赖文件 $^ 编译成目标文件 $。这通常用于定义如何从源代码文件生成可执行文件或对象文件的步骤。