SunStudio C ++编译器编译指示禁用警告?

时间:2009-02-11 15:39:15

标签: warnings suppress-warnings sunstudio

与SunStudio11捆绑在一起的STLport会产生很多警告。我相信大多数编译器都有办法禁用某些源文件的警告,如:

Sun C

#pragma error_messages off

#include <header.h>
// ...

#pragma error_messages on

GCC

#pragma warning(push, 0)        

#include <header.h>
// ...

#pragma warning(pop)

如何在SunStudio C ++编译器中执行此操作? (顺便说一句,sunstudio C pragmas在sunstudio C ++中不起作用)

4 个答案:

答案 0 :(得分:6)

在SunStudio 12中,#pragma error_messages的工作方式如C用户手册中所述。

您可以使用-errtags = yes选项查看标记,并使用它:

// Disable badargtypel2w:
//     String literal converted to char* in formal argument
#pragma error_messages (off, badargtypel2w )

然后用CC(C ++编译器)编译。

答案 1 :(得分:1)

如果你宁愿使用命令行选项而不是#pragmas,一个简单的答案就是你可以使用-erroff=%all on your compile line.

您可以使用-erroff =%tag

来抑制特定警告消息

您可以通过在编译行中添加-errtags来打印警告消息的标记。然后,您可以为-erroff定义一组逗号分隔值,仅抑制这些标记。

有关详细信息,请参阅http://docs.oracle.com/cd/E19205-01/820-7599/bkapa/index.html

请注意,Sun Studio 12 update 1现已推出,我在这里引用了SS12u1文档。

答案 2 :(得分:0)

无法关闭警告,但是当我上次查看SunStudio时,它附带了两个STL - 一个较旧的STL,用于向后兼容早期的编译器版本和STLport。如果您在尝试关闭警告之前使用STLport,可能值得检查。

答案 3 :(得分:0)

将-w添加到您的$ CC或您使用的任何变量。