4

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

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

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

4

1 回答 1

4

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
于 2011-08-11T16:34:40.613 回答