2009-02-11 111 views
3

與SunStudio11捆綁在一起的STLport會生成很多警告。我beleive大多數編譯器有一個方法來禁用某些源文件的警告,就像這樣:SunStudio C++編譯器編譯指示禁用警告?

化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Ç編譯指示不sunstudio C時工作特性++)

回答

0

不能與轉向警告過幫助,但是當我最後看了一眼SunStudio,它攜帶了兩個補充交易 - 與向後兼容性一老一早期的編譯器版本和STLport。在嘗試關閉警告之前,可能需要檢查您是否使用STLport。

+0

這是我正在使用的STLport。 – Andrew 2009-02-11 16:27:06

6

在Sun Studio 12中,#pragma error_messages按C用戶手冊中的說明工作。

你可以看到標籤與-errtags = yes選項,並使用它像這樣:

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

,然後用CC(C++編譯器)編譯。

+0

C++文檔沒有描述它,但它適用於CC。 – 2012-09-18 17:32:12

1

如果你寧願使用比編譯指示命令行選項,一個簡單的答案是,你可以使用-erroff=%all on your compile line.

可以抑制與-erroff =%的特定警告消息標籤

可以打印通過向您的編譯行添加-errtags來爲警告消息添加標籤。然後,您可以爲-erroff定義一組逗號分隔的值,從而僅抑制這些標籤。

有關更多信息,請參閱http://docs.oracle.com/cd/E19205-01/820-7599/bkapa/index.html

請注意,Sun Studio 12 update 1現在已可用,並且我在此處引用了SS12u1文檔。

0

將-w添加到您的$ CC或您使用的任何var。