Makefile作业

文章介绍了如何使用Makefile来编译C语言程序,提供了两种不同的编写方式。第一种利用wildcard和patsubst函数处理源文件和目标文件,第二种则依赖于自动变量和隐含规则。在每个示例中,都定义了编译器、编译标志,并指定了编译、链接的步骤以及清理目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有以下代码,编写一个makefile文件来编译它们:
文件fun1.c :
#include
void myprintf1()
{
printf("fun1!\n");
}
文件fun2.c:
#include
void myprintf2()
{
printf("fun2!\n");
}
文件head.h:
void myprintf1();
void myprintf2();
文件fun.c:
#include "head.h"
int main(int argc, const char *argv[])
{
myprintf1();
myprintf2();
return 0;
}

仅写出两种方式,但绝不只有两种方式

//用函数解决
 CC = gcc
 CFLAGS = -c -g -Wall
 
 OBJ = $(wildcard *.c)
 SRC = $(patsubst %.c, %.o , $(OBJ))
 
 test:$(SRC)
     $(CC) $^ -o $@
 %.o:%.c
     $(CC) $(CFLAGS) $^ -o $@
 
 
 .PHONY:clean
  clean:
      $(RM) *.o    
//用自动变量、隐含变量实现
 SRC = fun1.o fun2.o fun.o
 
 CC = gcc
 CFLAGS = -c -g -Wall
 
 test:$(SRC)
     $(CC) $(SRC) -o $@
 %.o:%.c
     $(CC) $(CFLAGS) $^ -o $@
 
 
 .PHONY:clean
  clean:
      $(RM) *.o    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值