4

メイクファイルで奇妙な問題が発生しています。Makefile にシンボリック リンクを設定したいだけですが、1 台のマシンでエラー メッセージが表示されます (Linux 2.6.18-238.12.1.el5)

make: execvp: ln: Too many levels of symbolic links

私のMacBookでは問題なく動作します。シェルで同じコマンドを実行しても問題なく動作します。何が問題になる可能性がありますか?にとって重要な環境変数はありますlnか?

4

1 に答える 1

4

エラーメッセージの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ているのでしょうか? あなたのPATHetc.には何がありますか?

[アップデート]

Makefile が PATH を台無しにしているに違いありません。正確なエラー メッセージを再現する Makefile は次のとおりです。

PATH=/tmp/foo

all:
    /bin/ln -nsf /tmp/foo /tmp/foo
    ln x y
于 2011-08-11T16:34:40.613 に答える