6

g++ 4.4.3 を使用しており、サードパーティ ライブラリの 1 つが素敵なエラーを引き起こしています。

/usr/include/c++/4.4/backward/backward_warning.h:28:2: 警告: #warning このファイルには少なくとも 1 つの非推奨または時代遅れのヘッダーが含まれており、将来予告なく削除される可能性があります。代わりに、同等の機能を持つ非推奨でないインターフェースを使用してください。置換ヘッダーとインターフェースのリストについては、backward_warning.h ファイルを参照してください。この警告を無効にするには、-Wno-deprecated を使用します。

これはサードパーティのライブラリであるため、問題を修正することはできません。そのため、問題の原因となっている 1 つの H ファイルについて、この警告を抑制するようコンパイラに指示したいだけです。

私はいくつかのことを試しました

#pragma GCC diagnostic ignored "-Wdeprecated"

しかし、指定する警告が見つかりません(「-Wdeprecated」はありません)。

では、問題のある 1 つの H ファイルに対してのみ、この警告を抑制する方法はありますか? 私はこのようなことをしたいと思っています:

// Turn off the warning
#pragma GCC diagnostic ignored "-Wdeprecated"
#include "BadFile.h"
// Turn the warning back on
#pragma GCC diagnostic warning "-Wdeprecated"
4

1 に答える 1

0

コマンドラインで-Wno-deprecatedを渡すだけでは、プラグマを使用してこれを行う方法を理解できませんでした。したがって、必死になっている場合は、次のことを試すことができます。

#undef __DEPRECATED

// include offensive headers here...

#define __DEPRECATED

しかし、私はシステムレベルの定義を解除することを絶対に容認しないことに注意してください#defines :-P

于 2013-02-04T17:21:49.273 に答える