Когда я запускаю nmake.exe из make, я получаю такую ​​ошибку:

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

NMAKE : fatal error U1065: invalid option '-'

Но я никуда не пропускаю '-' как вариант.

Если я запускаю ту же команду извне, она работает правильно.

8
docwhat 29 Дек 2009 в 18:38

3 ответа

Лучший ответ

Проблема в том, что переменные среды MAKE и MAKEFLAGS устанавливаются make. Это сбивает с толку nmake.exe.

Чтобы исправить это, просто добавьте к своему звонку на nmake.exe префикс env -u MAKE -u MAKEFLAGS.

Примере:

 some-make-target:
      env -u MAKE -u MAKEFLAGS nmake.exe /a /l
11
docwhat 29 Дек 2009 в 18:38
1
Что это за команда env? Похоже, это не стандартная команда cmd. Вы используете другую оболочку для Make в Windows?
 – 
Wolfgang Ulmer
20 Окт 2015 в 15:50
1
Это не инструмент для Windows. Я использовал unix-инструмент. Я не уверен, какой будет эквивалентная команда Windows. env -u MAKE -u MAKEFLAGS сбрасывает переменные среды MAKE и MAKEFLAGS только для этой одной команды.
 – 
docwhat
21 Окт 2015 в 20:45

Если вы используете Windows, просто перейдите в раздел «Переменные среды» в предварительной настройке системы и удалите системные переменные «MAKEFLAGS». Это не должно больше смущать Nmake.

0
Doni Yusdinar 23 Янв 2016 в 19:50

Предположим, вы находитесь в командной строке Windows и у вас есть такое правило:

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

От

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

set FOO: отображать значение FOO, если оно существует (например, echo %FOO%)

set FOO=: сбросить FOO (т. Е. При последующем вызове set FOO будет отображаться Environment variable FOO not defined)

Примечание: нет команды unset

0
Mizux 23 Фев 2018 в 13:18