linux高级编程六Makefile
2016-08-03 19:06
155 查看
========================== Makefile ======================
1.GNU推出的一款软件
2.在project文件中,在命令行下输入make,操作系统会自动寻找当前目录的下的makefile,按照makefile规则去编译project下的相关文件
3.基本形式:
main:main.o fun1.o fun.o gcc main.o fun1.o fun.o -o main
main.o:main.c
gcc -c main.c -o main.o
fun1.o:fun1.c
gcc -c fun1.c -o fun1.o
fun.o:fun.c
gcc -c fun.c -o fun.o
4.makefile变量
OBJS = main.o add.o
OBJ = main
CC = gcc
使用变量用$(OBJS)
$(OBJS)
$(CC)
5.自动变量
$@ 目标文件的完整名称
$< 第一个依赖文件的名称
$^ 所有的不重复的目标依赖文件,以空格隔开
方式一:
CC=gcc
CFLAGS=-O2 -Wall
OBJ=main
OBJS=main.o fun1.o fun.o
$(OBJ):$(OBJS)
$(CC) $(OBJS) -o $(OBJ)
main:main.o fun1.o fun.o
gcc main.o fun1.o fun.o -o main
main.o:main.c
gcc -c main.c -o main.o
fun1.o:fun1.c
gcc -c fun1.c -o fun1.o
fun.o:fun.c
gcc -c fun.c -o fun.o
.PHONY:
clean:
rm *.o main
方式二:
CC=gcc
CFLAGS=-O2 -Wall
OBJ=main
OBJS=main.o fun1.o fun.o
$(OBJ):$(OBJS)
$(CC) $(OBJS) -o $(OBJ)
main.o:main.c
$(CC) -c $< -o $@
fun1.o:fun1.c
$(CC) -c $< -o $@
fun.o:fun.c
$(CC) -c $< -o $@
.PHONY:
clean:
rm *.o main
方式三:
CC=gcc
CFLAGS=-O2 -Wall
OBJ=main
OBJS=main.o fun1.o fun.o
$(OBJ):$(OBJS)
$(CC) $(OBJS) -o $(OBJ)
%.o:%.c
$(CC) -c $^ -o $@
1.GNU推出的一款软件
2.在project文件中,在命令行下输入make,操作系统会自动寻找当前目录的下的makefile,按照makefile规则去编译project下的相关文件
3.基本形式:
main:main.o fun1.o fun.o gcc main.o fun1.o fun.o -o main
main.o:main.c
gcc -c main.c -o main.o
fun1.o:fun1.c
gcc -c fun1.c -o fun1.o
fun.o:fun.c
gcc -c fun.c -o fun.o
4.makefile变量
OBJS = main.o add.o
OBJ = main
CC = gcc
使用变量用$(OBJS)
$(OBJS)
$(CC)
5.自动变量
$@ 目标文件的完整名称
$< 第一个依赖文件的名称
$^ 所有的不重复的目标依赖文件,以空格隔开
方式一:
CC=gcc
CFLAGS=-O2 -Wall
OBJ=main
OBJS=main.o fun1.o fun.o
$(OBJ):$(OBJS)
$(CC) $(OBJS) -o $(OBJ)
main:main.o fun1.o fun.o
gcc main.o fun1.o fun.o -o main
main.o:main.c
gcc -c main.c -o main.o
fun1.o:fun1.c
gcc -c fun1.c -o fun1.o
fun.o:fun.c
gcc -c fun.c -o fun.o
.PHONY:
clean:
rm *.o main
方式二:
CC=gcc
CFLAGS=-O2 -Wall
OBJ=main
OBJS=main.o fun1.o fun.o
$(OBJ):$(OBJS)
$(CC) $(OBJS) -o $(OBJ)
main.o:main.c
$(CC) -c $< -o $@
fun1.o:fun1.c
$(CC) -c $< -o $@
fun.o:fun.c
$(CC) -c $< -o $@
.PHONY:
clean:
rm *.o main
方式三:
CC=gcc
CFLAGS=-O2 -Wall
OBJ=main
OBJS=main.o fun1.o fun.o
$(OBJ):$(OBJS)
$(CC) $(OBJS) -o $(OBJ)
%.o:%.c
$(CC) -c $^ -o $@
相关文章推荐
- [Linux高级编程] Makefile简化版
- linux编程_Makefile文件
- linux编程——makefile文件
- Linux下C语言编程入门-16关于高级套接字函数
- linux高级编程
- Linux高级编程系列之一:信号
- linux编程_Makefile文件
- 嵌入式系统开发学习步骤(Linux高级编程学习顺序)(zz)
- (2)《基于Linux的C编程与内核导读》--DDD和Makefile
- linux 学习- 编程基础之makefile
- linux高级编程 函数
- Linux/Unix C/C++编程 高级篇 Gtkmm-2.4 libGlademm-2.4
- 【嵌入式Linux学习七步曲之第七篇 Linux的高级应用编程】Linux下的多进程编程
- 【嵌入式Linux学习七步曲之第七篇 Linux的高级应用编程】TCP/IP网络编程函数解析
- Linux高级编程 - 进程间通信(Interprocess Communication)
- Linux/Unix C/C++编程 高级篇 Gtkmm-2.4 libGlademm-2.4 (图)
- 【嵌入式Linux学习七步曲之第七篇 Linux的高级应用编程】进程间的通信机制
- LINUX开发学习日记(第一部)(UNIX环境高级编程)
- 《UNIX 环境高级编程》源代码在linux环境运行方法
- linux驱动学习(二) Makefile高级