Я пишу установку в Makefile, в котором мне нужно установить PATH env. переменная.Чтение переменных cmd.exe внутри файла MinGW Makefile
В окнах части, я обнаружил следующее:
set
: Сset PATH="%PATH%;%CD%"
я могу изменитьPATH
внутри работающей среды. Есть две проблемы:- среда является порождал
cmd.exe
по маркам, который получает его переменная влияет и эффект удаляется, как только он закрывает - Даже если предыдущая проблема может быть решена, еще в
cmd.exe
, что вызываетmake
закроет один день, а измененныйPATH
потерян.
- среда является порождал
setx
: Средство Microsoft, которое может навсегда изменить env. переменные. Согласно microsoft itself, это единственный вариант командной строки для этого. Однако использованиеsetx PATH "%PATH%;%CD%" -m
превращает путь в литерал%PATH%;%CD%
и не заменяет переменные их содержимым!
Обратите внимание, что я называю make
от cmd.exe
не Cygwin или другие модифицированные оболочки окна, которые действуют больше как Linux. То, что я хочу сказать, что, хотя я могу использовать $(PATH)
в моем Makefile (вместо %PATH%
), я не могу использовать pwd
(вместо %CD%
)
Также обратите внимание, что если в CMD себя я бегу:
setx PATH "%PATH%;%CD%" -m
он отлично работает. Как-то мне нужно сделать make
выполнить эту команду.
Есть ли у вас какие-либо идеи, как исправить это, или какое обходное решение у меня есть?
P.S. Просто для записи, echo "%PATH%;%CD%"
в Makefile вторит буквальный "%PATH%;%CD%"
, а не позволить cmd.exe справиться с этим
Я бы сказал, что пользователь должен изменить свой собственный «PATH», чем отключиться от «GNU make» !! Хотя ты дал мне идею. Я мог бы поместить команду в файл .bat и выполнить это из моего make – Shahbaz