【问题标题】:Makefile and symbolic linksMakefile 和符号链接
【发布时间】:2011-08-11 14:33:27
【问题描述】:

我在生成文件时遇到了一个奇怪的问题。我只是想在 makefile 中设置一个符号链接,但在一台机器上收到错误消息(Linux 2.6.18-238.12.1.el5)

make: execvp: ln: Too many levels of symbolic links

它在我的 MacBook 上运行良好。如果我在 shell 中执行相同的命令,它也可以正常工作。会出什么问题?有没有对ln 很重要的环境变量?

【问题讨论】:

  • 你确定你在命令行上所做的就是你的规则试图做的吗?你能告诉我们规则吗?

标签: linux makefile ln


【解决方案1】:

我认为错误消息中的execvp 是关键。我相信这是说在尝试定位 ln 命令本身时,符号链接的级别太多了

例子:

all:
    ln -nsf /tmp/foo /tmp/foo
    /tmp/foo/ln x y

使用此 Makefile 运行“make”时出现错误:

make: execvp: /tmp/foo/ln: Too many levels of symbolic links

那么,您的 Makefile 是如何调用 ln 的呢?你的PATH 等是什么?

[更新]

我敢打赌 Makefile 弄乱了你的 PATH。这是一个重现您的确切错误消息的 Makefile:

PATH=/tmp/foo

all:
    /bin/ln -nsf /tmp/foo /tmp/foo
    ln x y

【讨论】:

  • 我认为你是对的。当我调用 /bin/ln 时,它可以工作。现在我只需要弄清楚它在哪里弄乱了路径。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
相关资源
最近更新 更多