Makefile编写规则及模板

本文介绍了Makefile的基本编写规则,包括规则的格式、目标与条件的关系,以及如何更新目标。强调了命令列表中必须以Tab开头,不能用空格替代。同时提到了赋值符号的不同用法,并解释了$@、$^和$<在Makefile中的含义。
摘要由CSDN通过智能技术生成

Makefile模板
一个简单实现的模板及其注释

一般使用 直接复制以下内容 修改下配置文件即可。

#makefile自整理规则
#1、规则语句前面是制表符TAB,写成空格会出错!
#2、赋值符号:=基本赋值,:=覆盖之前的指,?=如果没有值则赋值,+=继续添加后面的值。
#3、$@  表示目标文件。 $^ 表示所有依赖项。 $< 表示第一个文件

模板如下 
#定义编译器和连接器
CXX = g++
LD = g++
#wildcard的中文意思是通配符,它的功能类似于正则表达式,用于展开一列所有符合其参数描述的文件名,文件之间用空格分割。
SRCS = $(wildcard *.cpp)
#patsubst参数:第一个是需要匹配的样式,第二个是表示用什么替换它,第三个被处理的以空格隔开的字符串。
OBJS = $(patsubst %cpp, %o, $(SRCS))
# -I指定头文件目录
INCLUDE = -I./include
# -L指定库文件目录,-l指定静态库名字(去掉文件名中的lib前缀和.a后缀)
LIB = -L./libs -lname
# 开启编译warning和设置优化等级
#-O2这是一个程序优化参数,一般用-O2就是,用来优化程序用的,比如gcc test.c -O2,优化得到的程序比没优化的要小,执行速度可能也有所提升
CFLAGS = -Wall -O2
#可执行程序名称
TARGET = name
#.PHONY伪目标 防止存在clean和all文件 导致不执行更新
.PHONY:all clean

all: $(TARGET)
# 链接时候指定库文件目录及库文件名
# $@ 和 $< 是两个特殊的变量,$@的取值是当前规则中的目
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值