如何在Sun Studio 12中禁用系统标题的警告
问题描述:
我们正在整理我们的代码库(除其他外),以修复所有编译器警告。如何在Sun Studio 12中禁用系统标题的警告
最终目标是打开将所有警告转换为错误的标志。我们遇到了系统和第三方头文件的一个小问题。某些系统标题会导致各种编译器发出警告。现在显然我们不能去修改系统头来修复这些警告。
使用intel编译器(和gcc)时,只需使用-isystem而不是-I构建include路径,以告知编译器这些dirs中的头是系统头并停止对它们的警告。然后打开-Werror标志是一件简单的事情。
我们也使用Sun Studio 12,标志-errwarn =%全部应该与-Werror等价,但是我找不到一种方法告诉编译器忽略system/thirdparty头文件中的警告。有-errhdr标志,但这似乎没有做我想要的。
有没有人知道如何用Sun Studio 12来实现这一点?
答
不幸的是(据我所知),errhdr
国旗是最好的,你可以得到。很高兴您使用的是Sun Studio 12,因为它只是在该版本中添加的。
答
很显然,这不是你想要的,但是如果没有更好的东西,你可以将违规包含在#pragma error_messages块中。例如。
#pragma error_messages (on , tag .. tag)
#include <map>
// etc
#pragma error_messages (default , tag .. tag)
如所述here。我目前无法访问Solaris,所以我没有尝试过。
答
另一个选择是看看使用-errtags警告标记,然后用关闭特定的警告-erroff。
是的,我希望能够避免这种情况,但我可能别无选择。它可能会变得混乱,因为我也遇到了与HP的aCC编译器相同的问题。 – Glen 2011-01-26 17:46:26