Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何禁用有关特定库的编译器警告?_C++_Boost_Compiler Warnings_Clion - Fatal编程技术网

C++ 如何禁用有关特定库的编译器警告?

C++ 如何禁用有关特定库的编译器警告?,c++,boost,compiler-warnings,clion,C++,Boost,Compiler Warnings,Clion,我正在使用CLion作为我的IDE。我从(boost附带)下载了MinGW,提取、安装并成功地将其连接到CLion。然后我在CMakeLists中设置了编译器标志,当我编译我的程序时,我遇到了来自boost库的数百条警告(在本例中是-boost/lexical_cast.hpp) 我真的很想使用这些编译器标志中的大部分(如果不是全部的话),但我也不想boost(它肯定比我自己的任何程序都写得好)产生那么多噪音 是否有任何方法可以禁用特定标题/库(甚至可能是名称空间)中的所有警告?您可以将包含路径

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

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


是否有任何方法可以禁用特定标题/库(甚至可能是
名称空间
)中的所有警告?

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

target_include_directories(target SYSTEM ${Boost_INCLUDE_DIR})

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

不幸的是,这给了我以下CMake错误:
(target\u include\u目录):无法为非此项目生成的目标“system”指定包含目录。
。为了成功地包括
boost
现在,我一直在使用:
include\u目录(${boost\u include\u DIR})
target
是要添加boost包含路径的目标的名称。错误是不言而喻的。我的坏,工作得很好。非常感谢。我一有空就会接受答案(不必担心;)乐于助人。现代C++中没有“图书馆”这样的东西。现代C++代码是模板密集型的,我用这个术语来表示意图。虽然你的评论在技术上是正确的,但我相信更广泛的背景可能会带来一些有趣的答案。转发几年,我也可以在C++中列出一个模块对实际模块的正确支持。但是,如果没有具有真实概念的干净模板,就不可能有具有良好定义边界的真实模块。模板是一团糟,所有C++都是一团糟。