首页 > 解决方案 > 如何在 MSVC 中抑制所有 3rd 方编译时警告

问题描述

我正在开发一个使用 OpenCV 和 Boost 的 C++ 项目。不幸的是,在编译时,我的编译器从这些库的包含文件中给了我数百条警告。即使有一个空的 main 函数并且没有其他代码,我仍然会从 include 语句中收到这些警告。我听说这是 Qt 等其他 3rd 方库的问题。所有伟大的图书馆。如何抑制 MSVC 中的所有 3rd 方警告。

我知道这些解决方案:

我在最后两个解决方案上花了几个小时,但没有任何成功。“破碎的警告理论”博客并没有解释如何很好地应用其解决方案。

我在用着:

我非常感谢愿意帮助我解决这个问题的任何人。很高兴知道谁甚至解决了这个问题。如此多的公司使用这些库,其中一些可能使用 MSVC。他们不可能只是遵守那里的警告而忘记它们。我已经到了付钱解决这个问题的地步。让它工作可能是重用 3rd 方库和自己重写代码之间的决定因素。

标签: c++visual-c++librariessuppress-warnings

解决方案


所有这些都来自这篇博文:https ://devblogs.microsoft.com/cppblog/broken-warnings-theory/ 。文章介绍的总体基调充分说明了为什么一开始就没有这个选项(而且对我来说没有任何意义)。

基本上,这表示您可以将/external:I其用作-isystem. /external:templates-由于 MSVC 处理来自模板的警告的方式,您可能也需要。

不幸的是,我在MSVC 命令行文档中找不到对此的任何引用,也找不到与提到的 VS2017 15.6 相关的发行说明,因此您的里程可能会有所不同。但是,在其修饰符后面有一个 CMake 问题要求支持此功能。SYSTEM


推荐阅读