如何使 Visual Studio 的构建变得非常冗长?
Posted
技术标签:
【中文标题】如何使 Visual Studio 的构建变得非常冗长?【英文标题】:How can I make Visual Studio's build be very verbose? 【发布时间】:2010-11-15 18:13:17 【问题描述】:我需要掌握 Visual Studio 二进制文件在构建过程中使用的每个标志和每个开关。我试图通过使用vcbuild
来获得详细的输出,但我做不到。
我必须做什么才能看到 Visual Studio 为我执行的所有操作?不必在构建窗口中获取输出。任何地方都可以。
【问题讨论】:
完全重复的***.com/questions/823854/…。 【参考方案1】:菜单工具 → 选项 → 项目和解决方案 → 构建和运行 → MSBuild项目构建输出详细程度:诊断
【讨论】:
这不会改变任何东西。我仍然在输出窗口中得到相同的输出。 在 VC10 中对我来说很好。 @Geo 重启 Visual Studio 后生效。 @absynce,在 VS 2017 中,即使重新启动 Visual Studi0 2017 也不会生效。我使用的是 VS 2017 社区版。所以,这个功能在 VS 2017 中似乎没有正确实现。 在 VS 2019 中也可以使用!【参考方案2】:打开项目属性对话框,然后选择
配置属性 → C/C++ → 常规
将Suppress Startup Banner
的设置更改为No
cl
命令行将显示在输出窗口中。
【讨论】:
这只影响编译器而不是链接器或资源。 在 VS2017 中,这个“技巧”似乎不再起作用了。但是,在开发人员提示中使用 msbuild 将解决方案或项目文件名作为 cli 参数进行构建确实会显示 cl 调用及其参数。 @EmileVrijdags 按照这些步骤,我可以完美地看到 VS2017 的cl
命令输出。所以“技巧”对我有用。
在 VS 2019 中工作,在我更改 MSBuild 详细程度后,它没有显示任何差异,但在我这样做之后,它可以工作了。【参考方案3】:
Visual Studio 2008:
转到菜单 Tools → Options 然后 Project and Solutions → Build and Run 部分。您有一个详细程度的组合框。
C++ 编译器选项(项目属性):
预处理器 - 生成预处理 用于查看翻译单元的文件 由预处理器生成 高级 - 显示包括 - 显示 在编译器中包含文件名 输出【讨论】:
这不显示编译和链接器标志,只显示正在处理的文件名。是否可以看到执行的确切命令,或者这对于 VS 是不可能的? @stefanB:你不需要特殊的标志。编译器和链接器调用的命令行可以在选项对话框或写入中间目录的构建日志中找到。【参考方案4】:如果您正在运行 MSBuild,则可以设置 /v:diag 标志。
【讨论】:
启动 Visual Studio 命令提示符(它在开始菜单中),然后使用以下命令执行 Visual Studio 项目:MSBuild ProjectName 例如MsBuild myProject.csproj 我看到 MSBuild 调用vcbuild
,但 vcbuild 没有显示它正在使用的标志/开关。
这是我相信的正确答案。仅仅关掉各种banner的压制还是不能输出一切。特别是资源编译步骤是我正在寻找的。span>
【参考方案5】:
在 Visual Studio 中转到您的项目并右键单击它并选择属性。在链接器中有一个命令行选项。那里有所有选项,您可以添加自定义选项。添加/VERBOSE
,链接Visual Studio时会显示更多信息。
【讨论】:
它确实显示了更多信息,但它没有显示被调用编译的工具。 Visual Studio 有一个名为 nmake 的制作工具。您可以将项目导出到这些 makefile 并从 dos 控制台 msdn.microsoft.com/en-us/library/txcwa2xx(VS.80).aspx 构建它。上次我做了类似的事情(但我使用 CMake 生成了 nmake makefile),所有命令都打印到控制台显示中。以上是关于如何使 Visual Studio 的构建变得非常冗长?的主要内容,如果未能解决你的问题,请参考以下文章
如何在调试构建期间使 Visual Studio (2019/2022) 链接到正常的运行时库?
如何使用 Visual Studio 2019 构建 GTK+ 应用程序?