2010-12-09 7 views
19

¿Cómo puedo convertir una ruta de estilo Cygwin (/ cygdrive/c/foo/bar) al estilo de Windows (C:/foo/barra) (sí, con/adelante) en un archivo make de GNU? Tengo la situación de usar la marca de Cygwin con un GCC que no comprende , no, para entender las rutas de estilo de Cygwin, por lo que el compilador no acepta las rutas relativas a la ubicación de los archivos MAKE producidos por make.Convertir la ruta de Cygwin a la ruta de Windows en un archivo MAKE

+0

+1 Buena pregunta. No pude responderlo y simplemente monté '/' a '\' y tuve que crear mi aplicación solo desde la unidad c :. – khachik

+0

¿Y cómo hacer viceversa, convertir la ruta Win a Cygwin? – Danijel

Respuesta

23

Utilice la función shell para ejecutar la utilidad cygpath con el indicador -w.

Ejemplo:

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

cygpath acepta una gran cantidad de opciones adicionales. Vea la página de manual para más detalles.

+2

-m para "modo mixto" parece darme las barras/barras deseadas también en la ruta. – grrussel

+0

Sí, '-w' parece no funcionar, ya que make parece interpretar que las barras invertidas escapan del siguiente carácter. – cic

+0

Por alguna razón, cada vez que le da una ruta de directorio relativa hacia arriba, cygpath -w la convierte en una ruta absoluta. – CMCDragonkai

Cuestiones relacionadas