Chinaunix首页 | 论坛 | 博客
  • 博客访问: 528412
  • 博文数量: 83
  • 博客积分: 4136
  • 博客等级: 中校
  • 技术积分: 886
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-19 21:14
文章分类

全部博文(83)

文章存档

2013年(1)

2011年(25)

2010年(57)

分类: LINUX

2011-04-15 10:28:00

经常用的简单的makefile如下:
1.首先是依赖关系,在当前目录下共3个文件:main.c hello.c hello.h
main.c 包含 hello.c中的一个函数,这个函数在hello.h中声明
这是main.c的代码
  1. 1 #include
  2. 2 #include "hello.h"
  3. 3 int main(int argc, char *argv[])
  4. 4 {
  5. 5 printf("main is running\n");
  6. 6 sayhello();
  7. 7 return 0;
  8. 8 }

 

以下是hello.c的代码:

  1. 1 #include
  2. 2
  3. 3 int sayhello()
  4. 4 {
  5. 5 printf("sayhello is running\n");
  6. 6 printf("Hello !\n");
  7. 7 return 0;
  8. 8 }
以下是hello.h的代码:
  1. 1 #ifndef __HELLO_H__
  2. 2 #define __HELLO_H__
  3. 3
  4. 4
  5. 5 int sayhello();
  6. 6
  7. 7 #endif

 

编写一个简单的makefile如下:

  1. 1 #myhello:main.o hello.o
  2. 2 #使用变量 objects = main.o hello.o
  3. 3 objects= hello.o main.o
  4. 4 myhello:$(objects)
  5. 5 gcc -o myhello $(objects)
  6. 6
  7. 7 main.o:
  8. 8 #main.c main.o 会自动推导出依赖文件main.c 以及cc -c main.c
  9. 9 # gcc -c main.c
  10. 10 hello.o:
  11. 11 #hello.c
  12. 12 # gcc -c hello.c
  13. 13
  14. 14 .PHONY:clean
  15. 15 clean:
  16. 16 -rm myhello $(objects)

 

讲解如下:

1.可以使用变量,例如:objects = main.o hello.o

2.引用变量:$(objects)

3.makefile 可以自动推导,例如写入main.o:

makefile可以自动推导出 依赖main.c 和命令 cc -c main.c

 

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