Расширение переменной пути в make-файле с помощью SED в Windows - PullRequest
1 голос
/ 22 марта 2019

На компьютере с Windows, make-файл принимает параметр пути и создает другой файл, добавляя это значение пути.

Моя проблема заключается в том, что переменная пути неправильно отображается в результирующем файле.

Дляпример

$ make var=c:\test\kernel

с использованием приведенного ниже кода make-файла, это значение $ (var) добавляется в выходной файл

all:
      @sed -i '1 i\export PATH := $(var)' output.txt

Ожидаемый результат

export PATH := c:\test\kernel

Но вместо этого яполучаю

export PATH := c:   estkernel

Итак, как я могу исправить эту проблему в make-файле?

1 Ответ

2 голосов
/ 22 марта 2019

Во-первых, я настоятельно призываю вас всегда использовать прямую косую черту в путях даже в Windows, особенно при работе с make. В Windows очень мало программ, которые не будут работать с прямой косой чертой (в основном это команды старой школы CMD и т. Д.) И использовать обратную косую черту в инструментах, которые имеют свое происхождение в UNIX, всегда будет неудобно.

Для вашей ситуации вы можете сделать что-то вроде этого:

all:
        @sed -i '1 i\export PATH := $(subst \,\\,$(var))' output.txt

чтобы преобразовать ваши обратные слэши в экранированные обратные слэши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...