Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4470564
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: LINUX

2011-03-14 16:21:57

$@   表示当前规则的目标文件名  
$<   表示当前规则依赖为难列表中的第一个依赖文件
$^   表示整个依赖文件的列表


  1. CC=g++
  2. CFLAGS=-ansi -W -Wall
  3. OBJECTS:=add.o mytool.o
  4. add:$(OBJECTS)  #$<是第一个文件,所以这里生成的可执行文件必须是OBJECTS的第一个文件
  5. %o:%c
  6.     $(CC) $(CFLAGS) -c $< -o $@
  7. %o:%s
  8.     $(CC) $(CFLAGS) -c $< -o $@
  9. clean:
  10.     rm -f *.o add


如:2个C程序文件
  1. ywx@ywx:~/desktop/module/timer/hz$ ls
  2. hz.c Makefile sub.c sub.h
  3. ywx@ywx:~/desktop/module/timer/hz$
sub.h
  1. ifndef __SUB_H_
  2. #define __SUB_H_

  3. #include <stdio.h>

  4. int sub(int a,int b);

  5. #endif
  6. ~
  1. #include "sub.h"

  2. int sub(int a, int b)
  3. {
  4.         return a-b;
  5. }

  1. #include <stdio.h>
  2. #include <asm/param.h>

  3. #include "sub.h"

  4. int main(int argc, char *argv[])
  5. {
  6.         int a;
  7.         a=sub(4,3);
  8.         printf("a=%d\n",a);
  9.         printf("hz=%d\n",HZ); //打印系统 HZ 大小值
  10.         return 0;
  11. }
  1. CC = gcc
  2. CFLGAS = -Wall
  3. OBJECTS := hz.o sub.o
  4. hz: $(OBJECTS)  这两个相同
  5. %o:%c
  6.         $(CC) $(CFLAGS) -c $< -o $@
  7. %o:%s
  8.         $(CC) $(CFLAGS) -c $< -o $@
  9. clean:
  10.         rm -f $(OBJECTS) hz













阅读(985) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~