你如何抑制 MSVC 中的所有第 3 方编译时警告

How do you suppress all 3rd party compile time warnings in MSVC

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

我知道这些解决方案:

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

我正在使用:

非常感谢愿意帮助我解决此问题的任何人。很高兴知道谁解决了这个问题。许多公司使用这些库,有些可能使用 MSVC。他们不可能只遵守那里的警告而忘记它们。我正处于支付金钱以解决此问题的地步。让它工作可能是重用第 3 方库和自己重写代码之间的决定性因素。

所有这些都来自这个博客post:https://devblogs.microsoft.com/cppblog/broken-warnings-theory/。 文章介绍的一般基调充分说明了为什么这个选项一开始就不存在(none 对我来说很有意义)。

基本上这表示您可以使用 /external:I 作为 -isystem 的同义词。 由于 MSVC 处理来自模板的警告的方式,您可能还需要 /external:templates-

不幸的是,我在 the MSVC commandline documentation, nor the release notes related to the mentioned VS2017 15.6 中找不到任何关于此的参考资料,因此您的情况可能会有所不同。 但是,a CMake issue 在他们的 SYSTEM 修饰符后面请求支持此功能。