Chinaunix首页 | 论坛 | 博客
  • 博客访问: 413431
  • 博文数量: 75
  • 博客积分: 2020
  • 博客等级: 大尉
  • 技术积分: 663
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-04 16:56
文章分类

全部博文(75)

文章存档

2010年(10)

2009年(65)

分类: LINUX

2009-08-12 13:28:13

makfile简单的使用

只有三个文件   main.c first.c common.h

first 最基本的
/***************/
main: main.o first.o
    gcc main.o fist.o -o main
main.o: main.c commond.h .....
    gcc -c main.c
first.o: first.c commond.h ...
    gcc -c first.c

clean:
    rm -f main main.o first.o
/*************************/

second    替换 大写

/*************************/
CC = gcc
OBJS = main.o first.o

main: $(OBJS)
    $(CC) $(OBJS) -o main
main.o: main.c 和它的头文件
    $(CC) -c main.c
first.o: first.c .....
    $(CC) -c first.c

clean:
    rm -f $(OBJS)
/***********************/

third 隐含规则
CC gcc
CXX g++
AR ar
CPP $(CC) -E
RM rm -f

$@ 一条规则中的目标名字
$< 依赖文件中的第一个
$^ 所有的依赖 很强的哈//不是很好用哈  容易出错

/*********************/
OBJS = main.o first.o
main: main.o ......
    $(CC) $(OBJS) -o $@
main.o: main.c .......
    $(CC) -c $<
first.o: first.c
    $(CC) -C $<
clean:
    $(RM) $(OBJS)
/**********************/

fourth 系统会自动完成.o文件的转换

/************************/
OBJS = main.o first.o
.PHONY:test
test: $(OBJS)
    $(CC) -Wall $^ -o $@ -lm//这里的-lm可以连接数学函数库   一些简单的其它的连接也可以这样实现
.PHONY: clean
clean:
    -$(RM) $(OBJS)
/**********************/
阅读(1901) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~