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"
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"
相关文章推荐
- Makefile,如何传递宏定义DEBUG【转】
- Makefile(或者shell)的变量通过gcc的-D宏定义选项传递给C源文件
- 如何在Linux kernel Makefile中添加宏定义
- Makefile,如何传递宏定义DEBUG
- Makefile(或者shell)的变量通过gcc的-D宏定义选项传递给C源文件
- 如何在Linux kernel Makefile中添加宏定义
- Makefile宏定义选项传递给C源文件
- Makefile,如何传递宏定义DEBUG
- 在Makefile中给自己的代码传递宏定义
- Jsp中通过get方法传递参数为中文时出现乱码如何解决?
- 如何向 CrystalReportViewer 和 ReportDocument 传递参数……
- 请问在CODEVISION AVR C中如何在函数中传递数组的地址?
- 如何在.net里实现把独立FrameSet里的Forms参数传递给另一个FrameSet里的.aspx文件。
- 如何调试makefile变量
- c#如何在线程中通过传递消息更新界面
- 如何将二维数组作为函数的参数传递
- 如何自动生成Makefile
- 如何将报表中的参数传递给VB
- JNI编程中如何传递参数和返回值。
- 如何使用jQuery向asp.net Mvc传递复杂json数据