从命令提示符获取 Windows nmake 版本?

Posted

技术标签:

【中文标题】从命令提示符获取 Windows nmake 版本?【英文标题】:Get Windows nmake version from command prompt? 【发布时间】:2019-04-29 13:42:50 【问题描述】:

我不太了解nmake,但我在Windows 10 下使用“x64 Native Tools Command Prompt for VS 2017”中的nmake;我想从命令提示符中找出这个工具的版本。

我找到了这个:

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

要检查 NMAKE 版本,请运行 NMAKE 版本 1.62 或更高版本提供的 _NMAKE_VER 宏。此宏返回一个表示 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 版本?

【问题讨论】:

宏用于生成文件。考虑输入nmake /?,它会显示版本号和命令选项。 感谢@HansPassant - 随时发布这个作为答案,我会接受! 很难写出一个像样的答案,我只是不知道为什么这对你很重要。只需在自己的帖子中分享您学到的知识并将其标记为答案。 我对您的nmake 问题的回答提供了一个合理的示例,说明如何使用内置宏_NMAKE_VER 【参考方案1】:

正如 Hans Passant 所建议的,您可以考虑输入nmake/?;这将为您提供您从问题中已经知道的内容,即14.16.27026.1

变量_NMAKE_VER 的意义在于允许您从makefile 测试nmake 版本或Visual Studio 版本。例如,假设您的 makefile 是:

 # 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 .

【讨论】:

编辑: 要区分 VS 15 和 VS 17,您必须更仔细地检查颠覆号,因为 VS 17 nmake 主要版本号是14,而不是预期的15

以上是关于从命令提示符获取 Windows nmake 版本?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2017 nmake 缺少 io.h

如何在命令提示符下设置 v140_xp 工具集以使用 NMake 构建?

Windows下编译Libevent

如何在 Windows 中使用命令提示符获取 chrome 版本

从在 nmake 中完成的构建中,如何从 URL (wget) 下载文件?

在 Windows Qt Creator 上,我在哪里输入“cd”“nmake”和“configure”等命令