2011-08-11 27 views
4

メイクファイルに奇妙な問題があります。私は単にそれは私のMacBook上で完全に正常に動作Makefileとシンボリックリンク

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

メイクファイルにシンボリックリンクを設定するが、1台のマシン(Linuxの2.6.18-238.12.1.el5)にエラーメッセージを取得したいです。また、シェルで同じコマンドを実行するとうまく動作します。何がうまくいかないでしょうか? lnに重要な環境変数はありますか?

+0

あなたはあなたのルールが何をしようとしていることを確信していますか?ルールを教えてください。 – Beta

答えて

4

エラーメッセージのexecvpが鍵だと思います。私は、lnコマンド自体の位置を調べようとしている間に、シンボリックリンクのレベルがあまりにも多くあると言っていると信じています

例:正確には、どのようにあなたのMakefileがlnを呼び出している、だから、

make: execvp: /tmp/foo/ln: Too many levels of symbolic links 

:で、このMakefileのエラーで出て "作る" 実行

all: 
    ln -nsf /tmp/foo /tmp/foo 
    /tmp/foo/ln x y 

?あなたのPATHには何がありますか?

[更新]

私はあなたのPATHを台無しにしていると思います。ここにあなたの正確なエラーメッセージを再現するMakefileがあります:

PATH=/tmp/foo 

all: 
    /bin/ln -nsf /tmp/foo /tmp/foo 
    ln x y 
+0

あなたが正しいと思います。私が/ bin/lnを呼び出すと動作します。今私はそれが経路を台無しにしているのを把握する必要があります。ありがとう! – hanno