简单makefile

简单有用makefile脚本的,针对的c++ linux小项目,大项目复杂才用cmake

# 定义变量
CC = g++ # C++编译器
CFLAGS = -Wall -g # 编译选项
LDFLAGS = -lm # 链接库选项(如果需要)
SRCDIR =src
OBJDIR =obj
BINDIR =bin
TARGET =myprogram
SRCS := $(wildcard ${SRCDIR}/*.cpp) # 获取所有源文件路径列表
OBJS := $(patsubst %.cpp,$(OBJDIR)/%.o,$(notdir ${SRCS})) # 将源文件路径转换为对应的对象文件路径
DEPS := $(OBJS:$(OBJDIR)/%.o=$(OBJDIR)/%.d) # 依赖关系文件路径列表
# 默认目标
all : $(BINDIR)/$(TARGET)
# 创建目录
$(shell mkdir -p $(OBJDIR))
$(shell mkdir -p $(BINDIR))
# 生成依赖关系文件
-include $(DEPS)
# 生成对象文件
$(OBJDIR)/%.o : $(SRCDIR)/%.cpp | $(OBJDIR)
        @echo "Compiling $<"
        $(CC) $(CFLAGS) -MMD -MP -MT "$@" -MF $(basename $@).d -c $< -o $@
# 生成可执行文件
$(BINDIR)/$(TARGET): $(OBJS)
        @echo "Linking objects to create executable file"
        $(CC) $(LDFLAGS) $^ -o $@
# 清理中间文件和可执行文件
clean:
        rm -rf $(OBJDIR) $(BINDIR)
.PHONY: all clean
 

src = $(wildcard ./*.c)
obj = $(patsubst %..c, %..o, $(src))
target = app
$(target):$(obj)
    gcc $^ -o $@

%..o:%..c
    gcc -c $< -o $@ 
.PHONY:clean
clean:
    -mkdir /abc 
    -rm  $(obj) $(target) -f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值