与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 ++中不起作用)
答案 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或您使用的任何变量。