3

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

孙丙

#pragma error_messages off

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

#pragma error_messages on

海合会

#pragma warning(push, 0)        

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

#pragma warning(pop)

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

4

4 回答 4

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++ 编译器)编译。

于 2009-04-22T10:55:18.627 回答
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 更新 1 现在可用,我在这里引用 SS12u1 文档。

于 2009-07-09T23:08:41.417 回答
0

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

于 2009-09-16T19:39:50.943 回答
0

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

于 2009-02-11T15:56:05.947 回答