Как я могу преобразовать путь в стиле Cygwin ( /cygdrive/c/foo/bar ) в стиль Windows ( C:/foo/bar ) (да, с / в дальнейшем) в make-файле GNU? У меня возникла ситуация использования Cygwin make с GCC, который не понимает пути в стиле Cygwin, поэтому пути, относящиеся к местоположению make-файлов, созданные make, не принимаются компилятором.
Преобразование пути Cygwin в путь Windows в make-файле
Ответы (1)
Используйте функцию shell
для выполнения утилиты cygpath
с флагом -w
.
Пример:
BAR := /cygdrive/c/foo/bar
WIN_BAR := $(shell cygpath -w ${BAR})
cygpath
принимает множество дополнительных опций. Подробности смотрите на справочной странице.
person
Dan Moulding
schedule
09.12.2010
-m для смешанного режима, похоже, также дает мне желаемую / косую черту в пути.
- person grrussel; 09.12.2010
Да,
-w
, похоже, не работает, так как make интерпретирует обратную косую черту как экранирование следующего символа.
- person cic; 02.06.2015
По какой-то причине каждый раз, когда вы указываете относительный путь к каталогу вверх, cygpath -w преобразует его в абсолютный путь.
- person CMCDragonkai; 07.02.2017
/
в `` и должен был сделать свое приложение только с диска c:. - person khachik   schedule 09.12.2010