您的位置:首页 > 其它

Makefile如何传递宏定义

2008-09-04 14:52 239 查看
用个简单的例子说明:
Makefile文件:

CROSS =
CC = $(CROSS)gcc
AA = DEF1
BB = TEMP3
DD = TEMP1

all: hello

hello:hello.c
gcc -o $@ $^ -D $(AA) -D$(BB) -D TEMP1=/"2.6.2/"

clean:
rm -rf hello *.o

hello.c文件

#include <stdio.h>
/*好用的写法
#ifdef DEF1
#if CC
#define TT 1
#else
#define TT 2
#endif
#elif DEF2
#define TT 3
#endif
*/
#ifdef DEF1
#define TT 1
#elif DEF2
#ifndef TEMP3
#define TT 2
#else
#define TT 3
#endif
#endif

//#define TEMP1 "2.6.2"
//#define TEMP2 "SCADA" TEMP1
//#define TEMP2 "SCADA"
//#define TEMP3 "2.6.2"

/*好用的写法
#ifdef DEF1
int aa =1;
#elif DEF2
//int aa =2;
#ifndef CC
int aa =3;
#else
int aa =4;
#endif
#endif
*/
int main (int argc,char *argv[])
{
//int i = TEMP1;
char a[200+1] ="";

//i = TT;
//printf("%d/n",i);
//printf("%d/n",aa);
//printf("%s%02f%s/n",TEMP2,TEMP1,"tar.gz");
printf("%s/n",TEMP3);
printf("%s/n",TEMP1);
//snprintf(a,200,"%d",TEMP1);
//printf("%s/n",TEMP1);

return 0;
}
然后
make "AA=DEF1" "BB=DEF2" "DD=TEMP3"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: