Linux Makefile和符号链接
我在makefile中遇到了一个奇怪的问题。我只想在makefile中设置一个符号链接,但在一台机器上得到一条错误消息(Linux2.6.18-238.12.1.el5)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
它在我的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