2 wlmnzf wlmnzf 于 2016.03.11 00:05 提问

linux中Makefile引用的环境变量跟系统的环境变量不是同一个吗

makefile引用了$(HOME),值是/root,但是在shell中是/home/william,而且export的各种环境变量都不生效,请问是怎么回事

3个回答

devmiao
devmiao   Ds   Rxr 2016.03.11 00:49

如果是全局的,就是一样的。

oyljerry
oyljerry   Ds   Rxr 2016.03.11 13:38

你是不是root用户执行的makefile,这样环境变量跟你用户权限时不一样

huangteng198
huangteng198 回复wlmnzf: 那你应该修改源文件和makefile的权限啊 使用user权限来编译
大约 2 年之前 回复
wlmnzf
wlmnzf 是啊,编译tinyos的时候,不用root权限执行不行
2 年多之前 回复
hijack00
hijack00   Rxr 2016.08.22 19:50

有些环境变量的值对于不同的用户是不同的,例如HOME,USER等等。此外,在makefile中可以引用环境变量的值,但是其优先级比较低。Makefile执行时,首先引用环境变量中额值,但是如果在makefile中也定义了与环境变量同名的变量,则makefile中定义的这个变量的值就会覆盖环境变量中的值

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
makefile中使用环境变量的例子
上例子 首先,在linux 环境中,如此设置: #test=1234567 #export test #echo $test 1234567 # 然后编辑 Makefile all: @echo $(test) 运行结果:  #make    1234567 # 结束
makefile 使用环境变量
Makefile 用到环境变量时,不能直接使用$ORACLE_HOME,而是要使用$(ORACLE_HOME),切记
Makefile基础之二使用,引用和环境变量MAKEFILES
1. 使用 make命令会根据顺序寻找MAKEFILE文件 “GNUmakefile” ,"makefile","Makefile" 也可以自己指定 make -f xxx 2. 引用 include 引用支持shell的通配符 寻找文件路径如下: 2.1 当前目录 2.2 如果 make 执行时,有“-I”或“--include-dir”参数,那么 make 就会在这个参数
Makefile详解-环境变量MAKEFILES
如果你的当前环境中定义了环境变量MAKEFILES,那么,make会把这个变量中的值做一个类似于include的动作。这个变量中的值是其它的Makefile,用空格分隔。只是,它和include不同的是,从这个环境变中引入的Makefile的“目标”不会起作用,如果环境变量中定义的文件发现错误,make也会不理。 但是在这里我还是建议不要使用这个环境变量,因为只要这个变量一被定义,那么当你使
Linux之Makefile(变量的引用)
注意:Makefile 中在对一些简单变量的引用,我们也可以不使用“ () ”和“{}”来 标记变量名,而直接使用“$x”的格式来实现,此种用法仅限于变量名为单字符的情 况。 另外自动化变量也使用这种格式。 对于一般多字符变量的引用必须使用括号了标记, 否则make将把变量名的首字母作为作为变量而不是整个字符串 (“$PATH”在Makefile 2004年9月11日  82  GNU
在Makefile中检查环境变量
#Makefile that will check env varsCC = gccCFLAGS += -D$(TARGET_TYPE)all:  checkenv helloSRC = $(wildcard *.c)OBJ = $(SRC:%.c=%.o)checkenv:        @ if [ -z $$TARGET_TYPE ]; then echo TARGET_
嵌套makefile(makefile变量,环境变量)
多级makefile嵌套执行时上层makefile中定义变量并不能影响下层makefile的执行(除非设置环境变量) 如分别在目录/home/zsli/test及/home/zsli/test/sub_test中创建文件Makefile_t及Makefile,内容如下: CUR_DIR = $(shell pwd) .PHONY: all; all: @echo $(ZSLI_TE
Linux 系统添加环境变量
 Linux 系统添加环境变量 1、直接用export命令: #export PATH=$PATH:/home/user/ccDos 查看是否已经设好,可用命令echo $PATH 或 export查看: [root@localhost bin]# echo $PATH /usr/lib/lightdm/lightdm:/usr/local/ccm/bin:/u
makefile环境变量
环境变量“MAKECMDGOALS”,这个变量中会存放你所指定的终极目标的列表,如果在命令行上,你没有指定目标,那么,这个变量是空值。
linux环境变量自定义环境变量
shell中的变量可以简单分为环境变量和自定义变量。环境变量有时也被称为全局变量,它是操作系统为Shell事先定义的一组变量,这些变量共同描述了当前shell运行的系统环境;而自定义变量则是用户根据所需而定义的变量,它也被称为局部变量。自定义环境变量可以为局部的也可为全局的,为了区分两者的不同,环境变量通常用大写字母表示,而自定义变量通常使用小写子母表示。1. 环境变量 环境变量是一组变量的集合,