Convert Cygwin path to Windows path in a makefile

2020-05-21 11:42发布

问题:

How can I convert a Cygwin style path ( /cygdrive/c/foo/bar ) to Windows style ( C:/foo/bar ) (yes, with / going forward) in a GNU makefile? I have the situation of using Cygwin's make with a GCC that does not understand Cygwin style paths, so paths relative to the makefiles location that are produced by make are not accepted by the compiler.

回答1:

Use the shell function to execute the cygpath utility with the -w flag.

Example:

BAR := /cygdrive/c/foo/bar
WIN_BAR := $(shell cygpath -w ${BAR})

cygpath accepts a lot of additional options. See the man page for details.