我遇到了一个关于 makefile 的奇怪问题。我只是想在 makefile 中设置一个符号链接(symbolic link),但在一台机器上收到一条错误消息(Linux 2.6.18-238.12.1.el5)
make: execvp: ln: Too many levels of symbolic links
它在我的 MacBook 上运行良好。如果我在 shell 中执行相同的命令,它也能正常工作。什么可能出错?
ln
是否有任何重要的环境变量? 最佳答案
我认为,错误消息中的 execvp
是关键。我相信它是说在尝试定位 ln 命令本身时有太多级别的符号链接(symbolic link)。
例子:
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
关于linux - Makefile 和符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7027740/