Makefile和符号链接

时间:2011-08-11 14:33:28

标签: linux makefile ln

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

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

它在我的MacBook上完美运行。如果我在shell中执行相同的命令,它也可以正常工作。怎么可能出错?是否有任何环境变量对ln很重要?

1 个答案:

答案 0 :(得分:4)

我认为错误消息中的execvp是关键。我相信它是说在尝试找到ln命令时有太多级别的符号链接

示例:

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

使用以下命令运行“make”并显示Makefile错误:

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