01_Makefile文件编写
2017-06-08 09:43
344 查看
Makefile文件 格式: #目标:依赖(即条件) # 命令 /*注意一:我们通常在make时候,直接就是执行第一条目标,但是可以指定执行的目标。例如:make clean , make app等*/ /*阶段一: 注释:这是最粗略的版本*/ #app:add.c sub.c dive.c mul.c main.c # gcc add.c sub.c dive.c mul.c main.c -o app /*阶段二: 注释:改进,有时候我们在make时不想要更新已存在的文件,只想要更新改动过的文件,根据第一阶段的makefile文件,我们的所有依赖项都会重新编译,这很浪费时间。但是通过下面阶段二的写法,分别编译依赖项,可以只更新我们更改过的文件,提高效率。*/ #app:add.o sub.o dive.o mul.o main.o # gcc add.o sub.o dive.o mul.o main.o -o app #add.o:add.c # gcc -c add.c #sub.o:sub.c # gcc -c sub.c #dive.o:dive.c # gcc -c dive.c #mul.o:mul.c # gcc -c mul.c #main.o:main.c # gcc -c main.c /*阶段三: 注释:makefile也有很多的环境变量,使用这些环境变量,可以使我们更加专业化。*/ # $@表示目标,$^表示所有依赖,$<表示依赖中的第一个 #obj=add.o sub.o mul.o dive.o main.o #src = $(wildcard *.c) //获取当前目录下所有.c文件名 #obj = $(patsubst %.c,%.o,$(src))//将.c文件名换成.o文件名 #target = app #$(target):$(obj) # gcc $^ -o $@ #%.o:%.c # gcc -c $< -o $@ /*伪目标:避免和同名文件冲突,改善性能。*/ #阶段四 CPPFLAGS= -Iinclude CFLAGS= -g -Wall LDFLAGS= CC=gcc #CC=arm-linux-gcc src = $(wildcard *.c) obj = $(patsubst %.c,%.o,$(src)) /*obj=$(src:.c=.o)等同*/ target = app $(target):$(obj) $(CC) $^ $(LDFLAGS) -o $@ %.o:%.c /*.c.o:等同*/ $(CC) -c $< $(CFLAGS) $(CPPFLAGS) -o $@ .PHONY:clean #彻底清除生生过程文件 clean: -rm -f *.o -rm -f app #彻底清除生生过程文件和生成配置文件 distclean: rm /usr/bin/app install: cp app /usr/bin test: @echo $(src) /*取消回显*/ @echo $(obj)
相关文章推荐
- VS.net下编写makefile文件--NMAKE用法
- Linux平台Makefile文件的编写基础篇
- Linux C/C++ 多目标文件的链接及其Makefile编写($<与$^)
- 2010.11.17--如何编写Makefile文件(一)
- Linux平台Makefile文件的编写基础篇
- Linux平台Makefile文件的编写基础篇
- source文件和makefile文件编写
- make 的 makefile 文件编写
- 编写Makefile文件(转)
- Linux平台Makefile文件的编写基础篇
- Makefile文件的编写
- 编写Makefile文件
- 第10章 多模块编译链接 Makefile文件的编写
- 【转贴】Linux平台Makefile文件的编写基础
- Linux平台Makefile文件的编写基础篇
- Makefile文件编写简介
- 编写简单的Makefile文件
- makefile和source文件的编写
- 简单的Makefile文件编写
- Fortran makefile 文件编写实例