makefile使用

在文件夹(包含sub.c add.c main.c common.h )下输入make命令进行编译,输入make clean 命令清除.o等文件;

makefile文件示例:(其中命令皆以输入Tab键开头)

#变量

OBJS = sub.o add.o main.o 
CC = gcc
CFLAGS = -Wall -O -g   

要生成的文件:生成文件所需要的文件 

   生成文件执行的命令

common : $(OBJS)
    $(CC) $(OBJS) common.h -o common

sub.o : sub.c 
    $(CC) $(CFLAGS) -c sub.c -o sub.o

add.o : add.c 
    $(CC) $(CFLAGS) -c add.c -o add.o

main.o : main.c 
    $(CC) $(CFLAGS) -c main.c -o main.o


clean:
    rm -rf *.o common

进阶:

#@目标文件,^所有依赖的文件,<第一个依赖的文件
SRCS = $(wildcard *.c)
#检测文件夹下所有的.c文件,SRCS的值就是当前面目录下面所有的以.c结尾的源文件
OBJS = $(SRCS:.c=.o)
#变量OBJS的值就是将SRCS里面所有.c文件编译出的.o目标文件
CC = gcc
#变量CC代表我们要使用的编译器
INCLUDES = -I/home/noah/build_sqlite3/include
LIBS = -L/home/noah/build_sqlite3/lib -lsqlite3
#指定除了编译器默认的头文件和库文件的路径之外需要额外引用的头文件路径以及库的路径
CCFLAGS = -g -Wall -O0
#CCFLAGS变量存放的是编译选项
my_app : $(OBJS)
    $(CC) $^ -o $@ $(INCLUDES) $(LIBS)

%.o : %.c
    $(CC) -c $< $(CCFLAGS)

clean:
    rm *.o

重写上边的makefile:

SRCS = $(wildcard *.c)
OBJS = $(SRCS:.c=.o)
CC = gcc
CCFLAGS = -g -Wall -O0

common : $(OBJS)
	$(CC) $(CCFLAGS) $^ -o $@ 

%.o : %.c
	$(CC) -c $< $(CCFLAGS) -o $@

clean:
	rm *.o common
	

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值