问题标签 [warning-level]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
118075 浏览

cmake - 如何在 CMake 中设置警告级别?

如何使用CMake项目(不是整个解决方案)设置警告级别?应该在Visual StudioGCC上工作。

我找到了各种选项,但大多数似乎要么不起作用,要么与文档不一致。

0 投票
5 回答
6530 浏览

c++ - QT 警告级别建议

编译 QT 项目时使用的警告级别是多少?

当我使用 W4 编译时,我收到了很多警告,例如:

我应该在 W3 编译,还是在 W4 找到其他处理警告的方法,例如:添加一个新的头文件并使用 pragma's(在此处提到 C++ 编码标准:101 规则、指南和最佳实践)。

你的做法是什么?

谢谢。

0 投票
2 回答
94 浏览

c++ - -Os 的更多警告

这个节目

如果你编译它,编译时不会出现警告或错误

g++ -Wall test.cpp

但是,如果您在优化的情况下编译它,即使在相同的警告级别

g++ -Wall -Os test.cpp

然后它会开始抱怨你正在使用未初始化的变量!
(注意:实际程序稍长,并没有像这里的这个小例子那样清楚地暴露问题。)

我试过用谷歌搜索,但要么我没有使用正确的搜索词,要么这不是一个已知的现象。无论如何,我的问题基本上是

  • 为什么编译器会用 -Os 而不是用 -O0 给出这个警告,即使是在相同的警告级别?(如果有的话,对于这个小例子,我希望它是相反的,因为可以完全优化变量,然后问题就会消失。)
  • 是否有任何其他编译器选项会触发这样的意外警告?因为我有兴趣让我的程序没有错误,所以我喜欢看到所有的程序!
  • 这是一个已知的功能吗?如果是这样,我在哪里可以找到它?我确实尝试过搜索。
  • 或者这只是我特定版本的编译器(gcc 4.3.2-1.1,Linux,32 位)中的一个小故障?
0 投票
0 回答
692 浏览

visual-studio-2010 - 如何在visual studio 2010中为每个新项目设置警告级别?

正如标题已经提到的,我想为每个新创建的项目设置一个属性(更具体地说:警告级别)为 4。

到目前为止我所做的:1.打开Property Manager->Microsoft.Cpp.Win32.User 2.在C/C++:将警告级别更改为 4 并将所有警告视为错误 3.单击保存图标

这应该已经完成​​了,但是每次我创建一个新的空项目并向其中添加一个新的 c++ 文件时,当我现在打开项目设置时:警告级别回到标准值(3)......当我现在再次打开属性页它仍然设置为 4(就像我想要的那样)...

为什么 VS 不对我的新项目应用正确的设置?

0 投票
1 回答
1174 浏览

nuget - NuGet 还原 - 如何使其将警告视为错误?

由于缺少 .NET Core SDK,包还原仅部分成功并省略了 SDK 项目。

警告:读取 msbuild 项目信息时出错,请确保您输入的解决方案或项目文件有效。NETCore 和 UAP 项目将被跳过,只会还原 packages.config 文件。

这只是一个警告,并且 nuget.exe 以状态码 0 退出,因此构建管道会继续并稍后失败,从而更难找到原因。

因为这是我们环境中的常见问题,所以我希望将此警告视为错误。如果其他警告也被视为错误,那是完全可以的(甚至是可取的)。

我知道NuGet 读取 MSBuild 属性TreatWarningsAsErrorsWarningsAsErrors,但我没有设法从命令行使用它们。我尝试将 NUGET_RESTORE_MSBUILD_ARGS 环境变量设置为/p:TreatWarningsAsErrors=true,但即使该选项已传递给内部 MSBuild 调用,它也不会影响 nuget.exe 打印的警告。我没有找到任何其他合适的CLI 选项环境变量

语境

在本地 Azure Pipelines 构建中,我运行 NuGet 任务来恢复我的解决方案的包。该解决方案包含面向 .NET Framework 和使用 packages.config 的项目以及面向使用 PackageReference 的 .NET Core 的项目。

构建代理不在我的控制之下。有些安装了正确的 SDK 版本,有些没有。我使用 .NET Core SDK Installer 任务来安装相应的 SDK。

由于解决方案中构建定义的更改或 SDK 更新,构建可能会中断。但是,在这种情况下,错误消息是模糊的,因为它来自 VS Build,而不是来自包恢复构建步骤,根本原因在哪里,但它发出绿色光。

在内部,NuGet 任务(版本 2.*)执行 nuget.exe(当前版本 5.0.2),然后执行 MSBuild 以执行与 PackageReference 相关的部分工作。MSBuild 失败,导致 NuGet.CommandLine.ExitCodeException 被抛出,但被捕获、记录和丢弃。就在上面提到的 Warning_ReadingProjectsFailed 警告之上,打印了堆栈跟踪:

catch 子句顶部的注释说:

0 投票
1 回答
255 浏览

cmake - 如何为不同的文件设置不同的警告级别?

虽然我可以根据编译器设置不同的警告级别,例如:

我无法逐个文件设置它们。

在同一个目录中,我有一组名称在${SRC_WARN}CMake 变量中的文件,与其他文件相比,它们需要不同的警告级别。

有没有办法用 指定这样的条件target_compile_options

0 投票
0 回答
29 浏览

visual-c++ - 如何在 Visual Studio 中更改警告级别

我使用 CMake 创建了 Visual Studio 文件。但问题是属性> c/c++ > 内部包含显示“继承项目警告”。我想更改为“关闭所有警告/extern:W0”。是否可以使用 CMAKELists.txt 文件进行此更改。

我尝试过的可能解决方案是

两个更改都不起作用,我是配置 Cmake 的初学者,如果我的信息不符合最低要求,请原谅。