makefile只编译修改过的文件
本文演示配置makefile,检测修改的代码才编译,提升编译效率。
1. 测试代码
$ tree
.
├── app.c
├── lib
│ ├── module2.c
│ └── module2.h
├── makefile
├── module1.c
└── module1.h
app.c
#include <stdio.h>
#include "app.h"
#include "module1.h"
#include "lib/module2.h"
int main()
{
int a = 3;
int b = 2;
printf("c1 is %d\n", add(a, b));
printf("c2 is %d\n", sub(a, b));
return 0;
}
module1.h
int add(int a, int b);
module1.c
#include "module1.h"
int add(int a, int b)
{
return a + b;
}
lib/module2.h
int sub(int a, int b);
lib/module2.c
#include "module2.h"
int sub(int a, int b)
{
return a - b;
}
2. makefile
CC=gcc
SRCS=
SRCS+=app.c
SRCS+=module1.c
SRCS+=lib/module2.c
OBJECTS= $(patsubst %.c,%.o,${SRCS})
app : ${OBJECTS}
${CC} -o $@ $^
${OBJECTS}:%.o : %.c
${CC} -c $< -o $@
.PHONY:clean
clean:
rm -rf */*.o
rm -rf *.o
rm -rf app
作者 :秋时
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库