makeFile用法

案例一:

start:

@echo "hello"

@cat hello.c

all:

@echo "test----"


makefile 默认只执行第一个标号 其他都忽略

执行其他标号方法: make 标号名

指定文件名: make  -f   文件名(可以不用makefile)


案列二:

start:hello.o

gcc -o hello hello.o

hello.o:

gcc -o hello.o -c hello.c

clean:

rm -rf hello hello.o


标号后面可以加依赖 执行gcc -o hello hello.o 如果没有hello.o就会去依赖中寻找hello.o文件


定义变量:

CC=gcc

start:hello.o

$(CC) -o hello hello.o

hello.o:

$(CC) -o hello.o -c hello.c


变量一般都大写 , $(变量名) 说明使用变量 

CC=gcc

SRCS=hello.c

OBJS=hello.o

EXEC=hello

start:$(OBJS)

$(CC) -o $(EXEC) $(OBJS)

@echo "-------ok------"

$(OBJS):

$(CC) -o $(OBJS) -c $(SRCS)

clean:

rm -rf hello hello.o


make的规范:

对于.o文件,变量名称OBJS

对于.c文件,变量名称SRCS


OBJS=$(SRCS:.c=.o)

onjs= hello.c  .c=.o 表示 把.c替换成.o           等号两边不能有空格!!!!


.SUFFIXES:.c .o

.c和.o中间必须有空格

.SUFFIXES一定要出现在makefile文件的第一行

代表.c和.o文件是有关系的

-o   $@   -c  $< 代表.o文件 .c文件


.SUFFIXES:.c .o

CC=gcc

SRCS=hello.c \

            test.c

OBJS=$(SRCS:.c = .o)

EXEC=hello

start:$(OBJS)

          $(CC) -o $(EXEC) $(OBJS)

          @echo "-------ok------"

.c.o:

         $(CC) -Wall -o  $@  -c  $<

clean:

          rm -rf $(EXEC) $(OBJS)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容