【问题标题】:Make file environment variable not taking effect if called from shell script如果从 shell 脚本调用,使文件环境变量不生效
【发布时间】:2016-08-23 12:03:11
【问题描述】:

test.sh shell 脚本的内容如下。

PATH=/root/toolchains/gcc/gcc-4.8.2-20140120-centos70/bin/:$PATH
make -C ~/apps

apps 目录有一个 make 文件。内容如下。

all:
$(CC) -dumpversion
@echo $(PATH)

在 make 'echo $PATH 中显示新的 PATH 变量。这里 CC 应该从新的路径变量中获取新的 cc。但是 $CC 并没有从新路径中挑选。关于这个问题的任何指针?

【问题讨论】:

  • CC in make 默认为cc,您确定您的PATH 中某处有一个名为cc 的链接吗?
  • echo $(CC) 查看路径
  • $CC 只打印 'cc'
  • 添加 type -a $(CC) 以查看 cc 的路径

标签: c bash shell makefile


【解决方案1】:

你可以试试:

PATH=/root/toolchains/gcc/gcc-4.8.2-20140120-centos70/bin/:$PATH
make CC=gcc -C ~/apps

【讨论】:

  • 使用 make CC=gcc 选项从新路径中选择,但我的问题没有解决。我可能需要从新路径中挑选许多其他工具(例如:LD)。将所有这些作为制作选项传递是不正确的。
  • 如果这些工具存在于/root/toolchains/gcc/gcc-4.8.2-20140120-centos70/bin/(例如ld),那么它们将首先被拾取。我只是想象你在/root/toolchains/gcc/gcc-4.8.2-20140120-centos70/bin/ 中没有cc 二进制文件。
  • 如果您还有其他问题,请更新您的问题或提出其他问题。
猜你喜欢
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多