Makefiles, символическая папка и относительные пути - PullRequest
1 голос
/ 01 апреля 2010

Допустим, у меня есть следующие папки:

/ A / C

/ D / B / E

/ D / B / C (это символическая ссылка на / A / C, созданную ln -s)

Когда один из make-файлов пытается использовать путь /D/B/C/../E, он получает ошибку «нет файла или каталога». Я понимаю, почему это происходит; / A / E не существует. Однако я должен использовать символические ссылки, чтобы заполнить папку B и создать дерево сборки (очень длинная история).

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 02 апреля 2010

Я изменил способ связывания папок:

/ D / B / C теперь является ссылкой на ../../A/C insted of / A / C

0 голосов
/ 01 апреля 2010

Я не могу представить, как вы сконструировали путь, например "D / B / C /../ E", но вы могли бы выполнить некоторую обработку текста, чтобы очистить его.

Делать это с помощью функций Make возможно, но уродливо. Я рекомендую делегировать его в оболочку:

PATH := $(shell echo $(PATH) | sed '|/[^/]*/\.\.||g')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...