Получить версию Windows nmake из командной строки? - PullRequest
1 голос
/ 29 апреля 2019

Я действительно не знаю nmake, но я использую nmake из "Командная строка N64 Tools для VS 2017" под Windows 10;Я хотел бы узнать версию этого инструмента из командной строки.

Я нашел это:

https://docs.microsoft.com/en-us/cpp/build/reference/batch-mode-rules?view=vs-2019

Чтобы проверить версию NMAKE, запустите макрос _NMAKE_VER, доступный с NMAKE версии 1.62 или выше.Этот макрос возвращает строку, представляющую версию продукта Visual C ++.

... но я действительно не знаю, как "запустить макрос" - я пробовал это:

C:\>nmake _NMAKE_VER

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

NMAKE : fatal error U1073: don't know how to make '_NMAKE_VER'
Stop.

Итак, он пропустил что-то вроде строки версии, но все равно есть ошибка.

Таким образом, как правильно получить версию nmake из командной строки?

1 Ответ

0 голосов
/ 08 мая 2019

Как предполагает Ганс Пассант, вы можете написать nmake/?; это даст вам то, что вы уже знаете из своего вопроса, а именно 14.16.27026.1.

Смысл переменной _NMAKE_VER состоит в том, чтобы позволить вам протестировать версию nmake или версию Visual Studio из в make-файла. Например, предположим, что ваш make-файл:

 # Check the first three characters of _NMAKE_VER to
 # obtain the Visual Studio version:
 !if [cmd /c if "%_NMAKE_VER:~0,3%"=="14." exit 1]
 !  message Using VS 2017, with NMAKE $(_NMAKE_VER)
 !elseif [cmd /c if "%_NMAKE_VER:~0,3%"=="12." exit 1]
 !  message Using VS 2013, with NMAKE $(_NMAKE_VER)
 !else
 !  message Unknown VS version, with NMAKE $(_NMAKE_VER)
 !endif

 # Just output _NMAKE_VER:
 all:
      @echo "Version             NMAKE" $(_NMAKE_VER)

Затем введите в командной строке разработчика Visual Studio 2017 следующую команду:

 nmake /nologo

даст (на моей машине):

 Using VS 2017, with NMAKE 14.10.25019.0
 Version             NMAKE 14.10.25019.0

или для Visual Studio 2013:

 Using VS 2013, with NMAKE 12.00.21005.1
 Version             NMAKE 12.00.21005.1

Нам нужно использовать DOS cmd для проверки _NMAKE_VER, поскольку nmake в отличие от gmake имеет ограниченные инструменты для работы со строками.

Редактировать: Приведенный выше тест, вероятно, не сможет различить VS 15 и VS 17, поскольку номер версии VS 17 nmake начинается с 14, а не с ожидаемого 15.

...