Chinaunix首页 | 论坛 | 博客
  • 博客访问: 424410
  • 博文数量: 205
  • 博客积分: 5630
  • 博客等级: 大校
  • 技术积分: 1945
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-06 20:28
文章分类

全部博文(205)

文章存档

2016年(1)

2015年(6)

2014年(9)

2013年(10)

2012年(53)

2011年(25)

2010年(87)

2009年(14)

分类: LINUX

2010-11-01 14:19:57

Make传递参数
一个简单的例子,关于选择不选择DEBUG分支的问题,可以通过Makefile中设置
#include
int afun()
{
   printf("#########\n");
   return 6;
}

int bfun()
{
   printf("!!!!!!!\n");
   return 8;
}
int main(void)
{
   int(*fun)(void);
   int a;
#ifdef DEBUG /*这里的DEBUG对应于Makefile中的DDEBUG参数*/
   fun = afun;
#else
   fun = bfun;
#endif
   a = fun();    
   printf("a=%d\n",a);    
   return 0;
}
Makefile的内容如下
CFLAGS=-g -Wall -DDEBUG #这里的DDEBUG对应于mkfile.c中的DEBUG,此时在命令行直接make即可选择DEBUG分支
#或者这里将CFLAGS如下设置:
# CFLAGS = ${CFLAG}
# CFLAGS += -g -Wall
# 然后在make的时候这么写: make CFLAG=-DDEBUG
# 执行的结果是 gcc -DDEBUG -g -Wall mkfile.c  -o mkfile

OBJ=mkfile hello

.PHONY:all
all:${OBJ}
mkfile:
gcc ${CFLAGS} mkfile.c  -o mkfile
hello:
gcc ../hello/hello.c -o hello

.PHONY:clean
clean:
-rm mkfile hello \#*\#  #rm前加 - 表示遇到错误继续进行而不退出。
阅读(4047) | 评论(0) | 转发(0) |
0

上一篇:Android CTS

下一篇:10个最酷的Linux单行命令

给主人留下些什么吧!~~