-->

SunStudio C++ compiler pragma to disable warnings?

2020-04-11 18:37发布

问题:

The STLport bundled with the SunStudio11 generates alot of warnings. I beleive most compilers have a way to disable warnings from certain source files, like this:

Sun C

#pragma error_messages off

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

#pragma error_messages on

gcc

#pragma warning(push, 0)        

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

#pragma warning(pop)

How do you do this in the SunStudio C++ compiler? (btw, the sunstudio C pragmas don't work in sunstudio C++)

回答1:

In SunStudio 12, the #pragma error_messages work as documented in the C users manual.

You can see the tags with the -errtags=yes option, and use it like this:

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

and then compile with CC (the C++ compiler).



回答2:

If you'd rather use a command line option than #pragmas, a simple answer is that you can use -erroff=%all on your compile line.

You can suppress specific warning messages with -erroff=%tag

You can print out the tags for the warning messages by adding -errtags to your compile line. You can then define a set of comma-separated values for -erroff that suppress just those tags.

See http://docs.oracle.com/cd/E19205-01/820-7599/bkapa/index.html for more info.

Note that Sun Studio 12 update 1 is now available, and I'm referencing the SS12u1 doc here.



回答3:

Can't help with turning the warnings off, but when I last looked at SunStudio, it shipped with two STLs - an older one for backward compatibility with earlier compiler versions and STLport. Might be worth checking if you're using STLport before trying to trying to turn off the warnings.



回答4:

add -w to your $CC or whatever var you use.