如何在Sun Studio 12中禁用系统标头的警告

时间:2011-01-26 12:50:24

标签: c++ compiler-construction warnings sunstudio

我们正在整理我们的代码库,其中包括修复所有编译器警告(等等)。

最终目标是打开将所有警告转换为错误的标志。我们遇到了系统和第三方标题的轻微障碍。某些系统标头会导致各种编译器发出警告。现在显然我们无法修改系统头来修复这些警告。

使用intel编译器(和gcc),在构建包含路径时,只需使用-isystem而不是-I来告诉编译器这些目录中的头是系统头,并且它会停止对它们发出警告。然后打开-Werror标志就是一件简单的事情。

我们也在使用Sun Studio 12,标志-errwarn =%all应该相当于-Werror,但我找不到告诉编译器忽略system / thirdparty头文件中的警告的方法。有-errhdr标志,但这似乎没有我想要的。

有没有人知道如何使用Sun Studio 12完成此操作?

3 个答案:

答案 0 :(得分:2)

显然,这并不是你想要的,但是如果没有更好的东西,你可以在#pragma error_messages块中包装有问题的包含。 E.g。

#pragma error_messages (on , tag .. tag)

#include <map>
// etc

#pragma error_messages (default , tag .. tag)

here所述。我目前无法访问Solaris,因此我没有尝试过这个。

答案 1 :(得分:1)

另一种选择是使用 -errtags 查看警告标记,然后使用 -erroff 关闭特定警告。

答案 2 :(得分:0)

不幸的是(据我所知),errhdr标志是你能得到的最好的。很高兴您使用的是Sun Studio 12,因为它刚刚在该版本中添加。