javaee论坛

普通会员

225648

帖子

355

回复

369

积分

楼主
发表于 2017-06-18 17:20:54 | 查看: 119 | 回复: 1
在linux下面下写程序少不了写makefile,如果每个文件都按部就班的详细的写编译脚本,效率势必低下;makefile提供了自动化变量、模式规则等,稍加利用可以提高写makefile的效率。下面列举一个简单通用的makefile书写规则:

< class="cpp" name="code">SRCS = $(wildcard *.c)OBJS = $(SRCS:.c = .o)CC = gccINCLUDES = -I/usr/your_path/includeLIBS = -L/usr/your_path/libCCFLAGS = -g -Wall -O0yourApp : $(OBJS) $(CC) $^ -o $@ $(INCLUDES) $(LIBS)%.o : %.c $(CC) -c $< $(CCFLAGS)clean: rm -rf OBJS

L1:$(wildcard *.c)将把当前目录下面的下面的以.c结尾的文件名展开,即SRCS这个变量的值就是这个当前目录下面的所有.c文件的文件名所组成的串,文件名间用空格分割;

L2:.c替换为.o后的串;

L3——L6:变量的定义;

L9:$^——依赖目标的集合,$@——编译目标;

L12:$<——依赖目标的第一个目标名;如果目标以模式定义的,则将是一个一个取出来的目标集合;


普通会员

0

帖子

306

回复

311

积分
沙发
发表于 2024-05-11 06:00:55

记录一下

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017