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

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

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

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

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