在XCode 4.1中禁用有关Boost标头的警告

时间:2011-09-04 21:35:18

标签: c++ xcode boost xcode4

我正在编写一个使用Boost的C ++程序,使用XCode 4.1作为IDE和编译器前端。我在各种Boost标头中收到了很多警告,我想禁用这些标题的所有警告(但仍然为我自己的项目启用它们)。有没有简单的方法呢?

Here's my search path settings

2 个答案:

答案 0 :(得分:3)

根据@Georg Fritzsche的建议,我找到了一个不错的解决方法: 我已将各种有罪的提升标头添加到.pch文件(预编译的标头)中,并将它们包裹在#pragma push - #pragma pop块周围,如下所示:

// We do not want to have warnings about Boost headers!
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#pragma GCC diagnostic ignored "-Wshadow"

#include <boost/date_time/posix_time/posix_time_types.hpp>
...
#pragma GCC diagnostic pop

这非常有效,并且不像我担心的那样在每个.cpp文件中使用#pragma包围boost标头并不像烦恼。

答案 1 :(得分:2)

另一种解决方案,我发现它可以在Xcode 5.x中运行(但预计它可以与Xcode 4一起使用)。 在Boost依赖目标的构建设置中,我不是在Header Search Paths下设置标题的路径,而是在Other C++ Flags下写下,前缀为-isystem

snapshot of the other C++ flags