简单的Makefile

Makefile实战:构建C项目
本文介绍了一个详细的Makefile示例,用于自动化构建C语言项目。通过使用wildcard、notdir、patsubst等函数,Makefile能够智能地处理源文件目录下的所有.c文件,生成对应的.o文件,并最终链接成可执行文件。文章还解释了Makefile中各种符号的含义,如$@、$^、$<等,以及.SECONDARY伪目标的作用。
部署运行你感兴趣的模型镜像

代码示例:

# File paths 
SRC_DIR := ./src
BUILD_DIR := ./build
OBJ_DIR := $(BUILD_DIR)/obj
# Compilation flag
CC := gcc
LD := gcc
CFLAGS := -Wall
# Files to be compiled 
SRCS := $(wildcard $(SRC_DIR)/*.c)
OBJS := $(SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
BUILD := $(OBJS:$(OBJ_DIR)/%.o=$(BUILD_DIR)/%)

# Don't remove *.o files automatically 
.SECONDARY: $(OBJS)
all: $(BUILD)
# Compile each *.c file as *.o files 
$(OBJ_DIR)/%.o:$(SRC_DIR)/%.c
        @echo + CC $< 
        @mkdir -p $(OBJ_DIR) 
        @$(CC) $(CFLAGS) -c -o $@ $< 
# Link each *.o file as executable files 
$(BUILD_DIR)/%:$(OBJ_DIR)/%.o
        @echo + LD $@ 
        @mkdir -p $(BUILD_DIR) 
        @$(LD) $(CFLAGS) -o $@ $< 
.PHONY:all clean
clean: 
        rm -rf $(BUILD_DIR) 

效果:

			|----test
				 |----src      (*.c)
				 |----build    (exe)
					  |----obj  (*.o)

符号解析:
= 是最基本的赋值
:= 是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值
$@ ——目标文件的名称;
$^ ——所有的依赖文件,以空格分开,不包含重复的依赖文件;
$< ——第一个依赖文件的名称。
wildcard : 扩展通配符
notdir : 去除路径
patsubst :替换通配符
.SECONDARY: $(OBJS) //make的时候是否保留中间文件 .o

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

混合动力汽车(HEV)模型的Simscape模型(Matlab代码、Simulink仿真实现)内容概要:本文档介绍了一个混合动力汽车(HEV)的Simscape模型,该模型通过Matlab代码和Simulink仿真工具实现,旨在对混合动力汽车的动力系统进行建模与仿真分析。模型涵盖了发动机、电机、电池、传动系统等关键部件,能够模拟车辆在不同工况下的能量流动与控制策略,适用于动力系统设计、能耗优化及控制算法验证等研究方向。文档还提及该资源属于一个涵盖多个科研领域的MATLAB仿真资源包,涉及电力系统、机器学习、路径规划、信号处理等多个技术方向,配套提供网盘下载链接,便于用户获取完整资源。; 适合人群:具备Matlab/Simulink使用基础的高校研究生、科研人员及从事新能源汽车系统仿真的工程技术人员。; 使用场景及目标:①开展混合动力汽车能量管理策略的研究与仿真验证;②学习基于Simscape的物理系统建模方法;③作为教学案例用于车辆工程或自动化相关课程的实践环节;④与其他优化算法(如智能优化、强化学习)结合,实现控制策略的优化设计。; 阅读建议:建议使用者先熟悉Matlab/Simulink及Simscape基础操作,结合文档中的模型结构逐步理解各模块功能,可在此基础上修改参数或替换控制算法以满足具体研究需求,同时推荐访问提供的网盘链接获取完整代码与示例文件以便深入学习与调试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值