我遇到了一个makefile的奇怪问题。我只是想在makefile中设置一个符号链接,但在一台机器上得到一条错误信息(Linux 2.6.18-238.12.1.el5)
make: execvp: ln: Too many levels of symbolic links
它在我的MacBook上完美运行。如果我在shell中执行相同的命令,它也可以正常工作。怎么可能出错?是否有任何环境变量对ln
很重要?
答案 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