从零开始学习makefile(1).PHONY的作用

20 篇文章 2 订阅
本文介绍了Makefile的基本结构和规则,特别是如何定义伪目标`.PHONY`来确保`clean`等指令的正确执行,即使存在同名文件。通过示例展示了如何编写`clean`目标来删除编译产生的临时文件,强调了`.PHONY`在防止误操作中的作用。同时,文章还提供了包含`main.cpp`源代码的简单C++程序示例。
摘要由CSDN通过智能技术生成

makefile典型的模式是

目标 : 依赖文件 ....

[TAB]生成目标的指令

假如我们要调用make clean,则你还要以clean为目标,指定clean的依赖和指令。当然,clean其实不依赖任何文件,所以依赖文件一栏其实是空白的。

这里有一个问题。假如makefile的所在路径里确实有一个clean文件,那么make clean 的操作可能会影响这个真实存在的文件。为了避免这种问题,makefile引入了.PHONY。一旦被.PHONY标记,make 指令就知道clean是一个伪目标,不会对真实的clean文件做动作。

看下面的makefile 和 main.cpp:

CC := g++

main : main.o
	${CC} -o main main.o
main.o : main.cpp
	${CC} -o main.o -c main.cpp

.PHONY : clean
clean :
	rm *.o main

main.cpp

#include <iostream>

int main(void){
   std::cout<<"make an exe"<<std::endl;
   std::cin.get();

   return 0;
}

效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值