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