Makefile

Makefile实战
1.新建main.c Makefile tool1.c tool1.h tool2.c tool2.h
main.c
#include <stdio.h>
#include “tool1.h”
#include “tool2.h”
int main(){
mytool1();
mytool2();
return 0;
}
tool1.c
#include <stdio.h>
#include “tool1.h”
void mytool1(void)
{
printf(“tool1 print\n”);
}
tool2.c
#include <stdio.h>
#include “tool2.h”
void mytool2(void)
{
printf(“tool2 print\n”);
}
tool1.h
void mytool1(void);
tool2.h
void mytool2(void);

  1. Makefile的两种写法
    (1)
    **# 自定义依赖关系,源文件(后缀为.c)经过编译汇编生成目标文件(后缀为.o)
    # 目标文件执行生成可执行文件(类似与mytool)
    mytool:main.o tool1.o tool2.o

    写gcc命令时候,前面要tab按键一下

    不写-o参数,生成默认的可执行文件名为a.out,这里我们修改为mytool

    gcc main.o tool1.o tool2.0 -o mytool

main.o:main.c
#-Wall 可以看到所有的警告
#-g 可以调试
#-c 只允许执行到汇编步骤,不允许链接。
gcc main.c -c -Wall -g -o main.o
tool1.o:tool1.c
gcc too1.c -c -Wall -g -o tool1.o
tool2.o:tool2.c
gcc tool2.c -c -Wall -g -o tool2.o
clean:
$(RM) *.o mytool -rf

(2)
# $^ 代替 上面的指令
# RM 代替 rm -f
# $@ 代替 目标文件
# %.o:%.c
# $(CC) $^ $(CFLAGS) -o $@
# 百分号相当于一个通配符

OBJS=main.o tool1.o tool2.o
CC=gcc
CFLAGS=-c -Wall -g

mytool:${OBJS}
$(CC) $(OBJS) -o mytool

%.o:%.c
$(CC) $^ ${CFLAGS} -o $@

clean:
$(RM) *.o mytool -rf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值