makefile变量定义应用到c语言-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1322983
  • 博文数量: 198
  • 博客积分: 1629
  • 博客等级: 上尉
  • 技术积分: 2743
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-01 15:41
文章分类

(198)

  • (1)
  • (4)
  • (1)
  • (5)
  • (8)
  • (10)
  • (2)
  • (10)
  • (18)
  • (109)
  • (30)
文章存档

(6)

(20)

(8)

(3)

(17)

(3)

(3)

(9)

(13)

(17)

(77)

(22)

最近访客
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2021-06-17 10:47:55

c程序可以接收编译器定义的宏,通过-d指定。makefile中将make命令或makefile中变量通过编译器-d参数传递到c程序是关键。
宏定义使用前缀-d,在编译过程中可以把宏定义追加到cflag中。宏定义有两种相似的写法
    【第一种】-d defines 
    【第二种】-d defines=condition
注:可以在c语言中直接使用宏定义,如同c文件开始#define定义一样,但要注意变量定义格式(字符串要用引号)。

如判断soc是ti则c程序执行特殊动作(soc_ti),流程如下:

1. make命令执行时,定义soc=ti。

make soc=ti

2. makefile中判断soc变量。

ifeq ( "$soc", "ti")

  soc_flag = -dsoc_ti

endif

3. cflags增加宏

cflags = $(soc_flag)

foo:foo.o bar.o

  cc -o foo foo.o bar.o $(cflags) $(ldflags)

4. 在c程序中增加宏判断

#ifdef soc_ti

  todo...

#endif

通过上述过程soc=ti变量定义就传导到c程序中。

阅读(2294) | 评论(0) | 转发(0) |
0

上一篇:

下一篇:

给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图