问题标签 [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.
cmake - 如何在 CMake 中设置警告级别?
如何使用CMake为项目(不是整个解决方案)设置警告级别?应该在Visual Studio和GCC上工作。
我找到了各种选项,但大多数似乎要么不起作用,要么与文档不一致。
c++ - QT 警告级别建议
编译 QT 项目时使用的警告级别是多少?
当我使用 W4 编译时,我收到了很多警告,例如:
我应该在 W3 编译,还是在 W4 找到其他处理警告的方法,例如:添加一个新的头文件并使用 pragma's(在此处提到 C++ 编码标准:101 规则、指南和最佳实践)。
你的做法是什么?
谢谢。
c++ - -Os 的更多警告
这个节目
如果你编译它,编译时不会出现警告或错误
g++ -Wall test.cpp
但是,如果您在优化的情况下编译它,即使在相同的警告级别
g++ -Wall -Os test.cpp
然后它会开始抱怨你正在使用未初始化的变量!
(注意:实际程序稍长,并没有像这里的这个小例子那样清楚地暴露问题。)
我试过用谷歌搜索,但要么我没有使用正确的搜索词,要么这不是一个已知的现象。无论如何,我的问题基本上是
- 为什么编译器会用 -Os 而不是用 -O0 给出这个警告,即使是在相同的警告级别?(如果有的话,对于这个小例子,我希望它是相反的,因为可以完全优化变量,然后问题就会消失。)
- 是否有任何其他编译器选项会触发这样的意外警告?因为我有兴趣让我的程序没有错误,所以我喜欢看到所有的程序!
- 这是一个已知的功能吗?如果是这样,我在哪里可以找到它?我确实尝试过搜索。
- 或者这只是我特定版本的编译器(gcc 4.3.2-1.1,Linux,32 位)中的一个小故障?
visual-studio-2010 - 如何在visual studio 2010中为每个新项目设置警告级别?
正如标题已经提到的,我想为每个新创建的项目设置一个属性(更具体地说:警告级别)为 4。
到目前为止我所做的:1.打开Property Manager->Microsoft.Cpp.Win32.User
2.在C/C++
:将警告级别更改为 4 并将所有警告视为错误 3.单击保存图标
这应该已经完成了,但是每次我创建一个新的空项目并向其中添加一个新的 c++ 文件时,当我现在打开项目设置时:警告级别回到标准值(3)......当我现在再次打开属性页它仍然设置为 4(就像我想要的那样)...
为什么 VS 不对我的新项目应用正确的设置?
nuget - NuGet 还原 - 如何使其将警告视为错误?
由于缺少 .NET Core SDK,包还原仅部分成功并省略了 SDK 项目。
警告:读取 msbuild 项目信息时出错,请确保您输入的解决方案或项目文件有效。NETCore 和 UAP 项目将被跳过,只会还原 packages.config 文件。
这只是一个警告,并且 nuget.exe 以状态码 0 退出,因此构建管道会继续并稍后失败,从而更难找到原因。
因为这是我们环境中的常见问题,所以我希望将此警告视为错误。如果其他警告也被视为错误,那是完全可以的(甚至是可取的)。
我知道NuGet 读取 MSBuild 属性TreatWarningsAsErrors
和WarningsAsErrors
,但我没有设法从命令行使用它们。我尝试将 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 子句顶部的注释说:
cmake - 如何为不同的文件设置不同的警告级别?
虽然我可以根据编译器设置不同的警告级别,例如:
我无法逐个文件设置它们。
在同一个目录中,我有一组名称在${SRC_WARN}
CMake 变量中的文件,与其他文件相比,它们需要不同的警告级别。
有没有办法用 指定这样的条件target_compile_options
?
visual-c++ - 如何在 Visual Studio 中更改警告级别
我使用 CMake 创建了 Visual Studio 文件。但问题是属性> c/c++ > 内部包含显示“继承项目警告”。我想更改为“关闭所有警告/extern:W0”。是否可以使用 CMAKELists.txt 文件进行此更改。
我尝试过的可能解决方案是
和
两个更改都不起作用,我是配置 Cmake 的初学者,如果我的信息不符合最低要求,请原谅。