linux - Makefile 和符号链接(symbolic link)

标签 linux makefile ln

我遇到了一个关于 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/

相关文章:

linux - Ejb 类文件更新问题

php - 如何在服务器中安装钩子(Hook)?

linux - 如何在句子之间进行比较并计算相似度?

从 RepeatMasker 开发人员编译 COSEG 时出现 C "undefined reference to"错误

macos - 在 OS X 中创建目录硬链接(hard link)的 Unix 命令是什么?

带通配符 (*) 的 Dockerfile 符号链接(symbolic link)不起作用

c++ - 使用链接 linux 编译 GLFW 应用程序问题

c++ - MakeFile.am : Mixing c and c++, 新错误

c++ - 目标配方失败

linux - 应用程序中的符号链接(symbolic link)生命周期