2011-01-26 61 views
1

我们正在整理我们的代码库(除其他外),以​​修复所有编译器警告。如何在Sun Studio 12中禁用系统标题的警告

最终目标是打开将所有警告转换为错误的标志。我们遇到了系统和第三方头文件的一个小问题。某些系统标题会导致各种编译器发出警告。现在显然我们不能去修改系统头来修复这些警告。

使用intel编译器(和gcc)时,只需使用-isystem而不是-I构建include路径,以告知编译器这些dirs中的头是系统头并停止对它们的警告。然后打开-Werror标志是一件简单的事情。

我们也使用Sun Studio 12,标志-errwarn =%全部应该与-Werror等价,但是我找不到一种方法告诉编译器忽略system/thirdparty头文件中的警告。有-errhdr标志,但这似乎没有做我想要的。

有没有人知道如何用Sun Studio 12来实现这一点?

回答

0

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

2

很显然,这不是你想要的,但是如果没有更好的东西,你可以将违规包含在#pragma error_messages块中。例如。

#pragma error_messages (on , tag .. tag) 

#include <map> 
// etc 

#pragma error_messages (default , tag .. tag) 

如所述here。我目前无法访问Solaris,所以我没有尝试过。

+0

是的,我希望能够避免这种情况,但我可能别无选择。它可能会变得混乱,因为我也遇到了与HP的aCC编译器相同的问题。 – Glen 2011-01-26 17:46:26

1

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