Question

When I run nmake.exe from make I get this error:

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

NMAKE : fatal error U1065: invalid option '-'

But I'm not passing in '-' as an option anyplace.

If I run the same command from outside of make it works correctly.

Was it helpful?

Solution

The problem is that the environment variables MAKE and MAKEFLAGS are set by make. These are confusing nmake.exe.

To fix this, just prefix your call to nmake.exe with env -u MAKE -u MAKEFLAGS

Example:

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

OTHER TIPS

if you use windows, simply go to Enviroment Variables in advance system setting and delete system variables "MAKEFLAGS". It should not confuse Nmake anymore.

Supposing you are on a windows prompt command, and you have a rule like that:

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

by

 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)

note: there is no unset command

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top