Makefile

Makefile 的基本结构总结

Makefile 用于自动化管理项目的编译过程,其基本结构分为以下几个核心部分:

1. 变量定义
  • 作用:简化和统一编译器、编译选项及文件名的管理。
  • 示例
    CC = gcc
    CFLAGS = -Wall -g
    TARGET = ex1
    
2. 目标和规则
  • 作用:定义生成文件或执行操作的具体步骤。
  • 基本结构:目标文件 : 依赖文件
    all: $(TARGET)
    
    $(TARGET): $(TARGET).o
    	$(CC) $(CFLAGS) -o $(TARGET) $(TARGET).o
    
    $(TARGET).o: $(TARGET).c
    	$(CC) $(CFLAGS) -c $(TARGET).c -o $(TARGET).o
    
3. 特殊目标
  • 作用:执行特定操作(如清理生成的文件)。
  • 示例
    clean:
    	rm -f $(TARGET) $(TARGET).o
    
4. 伪目标
  • 作用:声明不生成文件的目标,避免与文件名冲突。
  • 示例
    .PHONY: all clean
    

# 定义编译选项
CFLAGS = -Wall -g

# 定义编译器
CC = gcc

# 定义目标文件名
TARGET = ex1

# 默认目标,依赖于 $(TARGET)
all: $(TARGET)

# 生成可执行文件的规则
$(TARGET): $(TARGET).o
	$(CC) $(CFLAGS) -o $(TARGET) $(TARGET).o

# 编译源文件生成目标文件的规则
$(TARGET).o: $(TARGET).c
	$(CC) $(CFLAGS) -c $(TARGET).c -o $(TARGET).o

# 清理生成文件的规则
clean:
	rm -f $(TARGET) $(TARGET).o

# 声明伪目标,避免与实际文件名冲突
.PHONY: all clean

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值