Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2309053
  • 博文数量: 395
  • 博客积分: 10994
  • 博客等级: 上将
  • 技术积分: 5586
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-17 19:49
文章存档

2014年(1)

2013年(10)

2012年(74)

2011年(303)

2010年(7)

分类: LINUX

2011-07-23 19:51:01

今天练习了一个小实验:
[root@feifei p3.1]# ls
Makefile  p3.1.c  p3.1.o  p3.1.pre.c  p3.1.s
[root@feifei p3.1]# vi Makefile
#CC=gcc
#CFLAGS=-o
p3.1 : p3.1.c
        $(CC) $(CFLAGS) $@ p3.1.c
        #$(CC) -o $@ p3.1.c
        echo $(CFLAGS)
实验的目的是:
一.验证这个CFLAGS到底有没有预定义的值,并且验证这个CC的预定义值
过程如下:
[root@feifei p3.1]# make
cc  p3.1 p3.1.c  (这个地方说明了CFLAGS没有起作用,忽略了它。。。。)
cc: p3.1:没有那个文件或目录
make: *** [p3.1] 错误 1
从上面的结果说明:这个CC变量是是make的预订的值(即CC=cc)(解释,这个并不是环境变量,如下解释)
[root@feifei p3.1]# echo $CC
[root@feifei p3.1]#
说明系统并没有CC这个环境变量,我的认为是这个验证了书上写的是makefile的预定义变量,至于在哪定义的,却不知道
而对于CFLAGS这个变量无法验证是不是makefile的预定义变量,并且一定不是环境变量:如下
[root@feifei p3.1]# echo $CFLAGS
[root@feifei p3.1]#
这说明了一个问题,对于makfile中引用的变量,如果不是makefile预定义的变量,也不只是环境变量的话,那么这个变量就以空格来表示(是不是空格,我也不知道,但至少是空的,就是没有,从第一次make的执行过程可以看出)
二.我试着对CFLAGS设置为环境变量,然后看看这个make可以执行下去不,如下:
[root@feifei p3.1]# export CFLAGS=-o
[root@feifei p3.1]# echo $CFLAGS
-o
说明已经设置好了,下面验证:
[root@feifei p3.1]# make
cc -o p3.1 p3.1.c
#cc -o p3.1 p3.1.c
echo -o
-o
说明验证成功,
总结如下:makefile会使用环境变量的值来进行编译。。。。。
 
 
阅读(16687) | 评论(1) | 转发(3) |
0

上一篇:环境变量

下一篇:vim 替换命令使用

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

barrypp2013-04-24 08:21:44

thanks