2009-12-29 6 views
6

Cuando corro nmake.exe de make me sale este error:nmake.exe sigue quejándose de banderas que no le doy. (U1065)

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42 
Copyright (C) Microsoft Corporation. All rights reserved. 

NMAKE : fatal error U1065: invalid option '-' 

pero no estoy pasando '-' como una opción en cualquier lugar.

Si ejecuto el mismo comando desde fuera de make, funciona correctamente.

Respuesta

9

El problema es que las variables de entorno MAKE y MAKEFLAGS se establecen en make. Estos son confusos nmake.exe.

Para solucionar esto, simplemente prefijar su llamada a nmake.exe con env -u MAKE -u MAKEFLAGS

Ejemplo:

some-make-target: 
     env -u MAKE -u MAKEFLAGS nmake.exe /a /l 
+0

Lo es este comando 'env'? No parece ser un comando cmd estándar. ¿Estás usando otro shell para Make en Windows? –

+1

No es una herramienta de Windows. Es una herramienta de Unix que estaba usando. No estoy seguro de cuál sería el comando equivalente de Windows. 'env-u MAKE -u MAKEFLAGS' está desactivando las variables de entorno' MAKE' y 'MAKEFLAGS' solo para ese comando. –

0

Si utiliza Windows, simplemente vaya al ambiente Variables en Ajuste del sistema de avance y eliminar variables del sistema "MAKEFLAGS" . No debería confundir a Nmake nunca más.

0

suponiendo que está en una ventanas de símbolo del sistema, y ​​tiene una regla como esa:

target: 
    cd ... && nmake.exe ... 

por

target: 
    cd ... && set MAKEFLAGS= && nmake.exe ... 

set FOO : display the value of FOO if exist, (like echo %FOO%)

set FOO= : unset FOO, (i.e. later call to set FOO will display Environment variable FOO not defined)

nota: no hay unset comando

Cuestiones relacionadas