MSVC - 不显示编译器 version/copyright 信息

MSVC - do not display compiler version/copyright information

我有一个生成文件:

all: hello.cpp
    cl /EHsc hello.cpp

在开发人员 powershell 中,当我键入 nmake 时,我得到:


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

        cl /EHsc hello.cpp
Microsoft (R) C/C++ Optimizing Compiler Version 19.28.29915 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

hello.cpp
Microsoft (R) Incremental Linker Version 14.28.29915.0
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:hello.exe
hello.obj

有没有办法不显示

Microsoft (R) C/C++ Optimizing Compiler Version 19.28.29915 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

Microsoft (R) Incremental Linker Version 14.28.29915.0
Copyright (C) Microsoft Corporation.  All rights reserved.

但只是显示

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

        cl /EHsc hello.cpp

hello.cpp
/out:hello.exe
hello.obj

或类似的东西。我只是希望微软横幅不显示,因为它们占用了不必要的行。

正如 @dxiv 在评论中所建议的,添加 /nologo 标志似乎有效。修改后的makefile为:

all: hello.cpp
    cl /EHsc /nologo hello.cpp

开发者 powershell 的输出是:

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

        cl /EHsc /nologo hello.cpp
hello.cpp

我不知道为什么微软觉得有必要默认显示这个(编译器版本和版权信息)信息,因为它是完全没有必要的。如果我需要用于调试的编译器版本,我应该能够为 UNIX 执行类似 cl -v 类似于 g++ 的操作。可以找到更多标志 here.