如何禁用有关某些库的编译器警告?

How can I disable compiler warnings regarding certain library?

我正在使用 CLion 作为我的 IDE。我从 here 下载了 MinGW(带有 boost),解压、安装并成功连接到 CLion。然后我在 CMakeLists 中设置我的编译器标志,当我编译我的程序时,我遇到了来自 boost 库的数百条警告(在本例中 - boost/lexical_cast.hpp)。

我真的很想使用大部分(如果不是全部的话)这些编译器标志,但我也不希望 boost(肯定比我自己的任何程序都写得更好)产生那么多噪音。

是否有任何方法可以禁用来自特定 header / 库(甚至 namespace)的所有警告?

您可以将包含路径添加为 SYSTEM 而不是标准路径:

target_include_directories(target SYSTEM ${Boost_INCLUDE_DIR})

这仅适用于 GCC 和 clang,因为 Visual Studio 没有针对系统路径的特定包含标志。