Makefile и символические ссылки - PullRequest
4 голосов
/ 11 августа 2011

У меня странная проблема с make-файлом. Я просто хочу установить символическую ссылку в make-файле, но получаю сообщение об ошибке на одном компьютере (Linux 2.6.18-238.12.1.el5)

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

Он отлично работает на моем MacBook. Это также работает нормально, если я выполняю ту же команду в оболочке. Что может пойти не так? Существуют ли переменные среды, важные для ln?

1 Ответ

4 голосов
/ 11 августа 2011

execvp в сообщении об ошибке - это ключ, я думаю. Я полагаю, это говорит о том, что существует слишком много уровней символических ссылок при попытке найти саму команду ln .

Пример:

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

Запуск "make" с ошибками этого Makefile:

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

Итак, как ваш Makefile вызывает ln, точно? Что в твоем PATH и т. Д.?

[обновление]

Могу поспорить, Makefile испортит ваш путь. Вот Makefile, который воспроизводит ваше точное сообщение об ошибке:

PATH=/tmp/foo

all:
    /bin/ln -nsf /tmp/foo /tmp/foo
    ln x y
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...