我遇到了makefile的一個奇怪問題。我只是想設置在生成文件的符號鏈接,但一臺機器上得到一個錯誤消息(Linux的2.6.18-238.12.1.el5)Makefile和符號鏈接
make: execvp: ln: Too many levels of symbolic links
它適用於我的MacBook完美的罰款。如果我在shell中執行相同的命令,它也可以正常工作。有什麼可能出錯?有沒有對ln
重要的環境變量?
我遇到了makefile的一個奇怪問題。我只是想設置在生成文件的符號鏈接,但一臺機器上得到一個錯誤消息(Linux的2.6.18-238.12.1.el5)Makefile和符號鏈接
make: execvp: ln: Too many levels of symbolic links
它適用於我的MacBook完美的罰款。如果我在shell中執行相同的命令,它也可以正常工作。有什麼可能出錯?有沒有對ln
重要的環境變量?
錯誤信息中的execvp
是關鍵,我想。我相信這是說有太多級別的符號鏈接,同時試圖找到ln命令本身。
例子:
all:
ln -nsf /tmp/foo /tmp/foo
/tmp/foo/ln x y
運行 「讓」 與這個Makefile有錯誤了:
make: execvp: /tmp/foo/ln: Too many levels of symbolic links
那麼,如何在你的Makefile調用ln
,到底是什麼?什麼在你的PATH
等?
[更新]
我敢打賭,Makefile弄亂了你的PATH。這裏是一個生成文件,它能夠再現你的確切錯誤信息:
PATH=/tmp/foo
all:
/bin/ln -nsf /tmp/foo /tmp/foo
ln x y
我認爲你是對的。當我打電話/ bin/ln它的作品。現在我只需要弄清楚它弄亂了路徑。謝謝! – hanno
你確定你在命令行上做了什麼是你的規則要做的事嗎?你能告訴我們這個規則嗎? – Beta