Linux Makefile和符号链接

Linux Makefile和符号链接,linux,makefile,ln,Linux,Makefile,Ln,我在makefile中遇到了一个奇怪的问题。我只想在makefile中设置一个符号链接,但在一台机器上得到一条错误消息(Linux2.6.18-238.12.1.el5) 它在我的MacBook上运行得非常好。如果我在shell中执行相同的命令,它也可以正常工作。会出什么问题?是否存在对ln重要的环境变量?我认为错误消息中的execvp是关键。我相信这是说,在试图定位ln命令本身时,符号链接的级别太多了 例如: all: ln -nsf /tmp/foo /tmp/foo /tm

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


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

我认为错误消息中的
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=/tmp/foo

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

您确定您在命令行上执行的操作就是您的规则尝试执行的操作吗?你能告诉我们规则吗?我想你是对的。当我调用/bin/ln时,它就工作了。现在我只需要找出它把路径弄乱的地方。谢谢
PATH=/tmp/foo

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