2009-04-22 13 views
6

私はQtで書かれたソフトウェアプロジェクトに携わり、Linuxではqmakeとgccで構築されています。私たちはかなり低い品質の第三者図書館にリンクし、数多くの警告を発する必要があります。私はソースコードで-W -Wallを使いたいですが、厄介なサードパーティのライブラリには、コンソールに雑音や混乱がなく、コード品質に集中できるようにするために渡します。qmake/gccで警告を条件付きで無効にしますか?

qmakeでは、条件付きでCFLAGS/CXXFLAGSを特定のファイルやライブラリに追加する方法はありますか?

答えて

5

Jonathan、私の問題は、ソースファイルにサードパーティライブラリのヘッダファイルが含まれていて、後者の警告を消したいということです。

ケビン、私はあなたが警告を制御するプラグマを使用することができると思う:gcc diagnostic pragmas

あなたは、サードパーティのLIBSのための任意の#includeの前と後にこれらを追加することができます。 (必要に応じて...利用CONFIG + =リリース)

+0

修正すると、警告はサードパーティのヘッダーからのものです。私はプラグマを調べますが、サードパーティ製ヘッダーにのみ挿入する方法はありますか、またはヘッダーを編集する必要がありますか? –

+0

サードパーティのヘッダーにヘッダーラッパーを導入できます。 1つのブルートフォースのアプローチは、サードパーティのヘッダーのインクルードを1つのヘッダーに入れることです。アプリはそのヘッダーを必要な場所に入れるだけです。例えば。アプリケーションがライブラリZedを使用している場合は、すべてのZedヘッダを含むzed.hヘッダを作成します。次に、プラグマをzed.hに追加することができます。 または、コードを辿って#include をプラグマで囲みます。 –

0

通常、自分のコードとは別のディレクトリにサードパーティ製のライブラリをビルドするので、別のメイクファイルが作成されるため、そのコンパイル用に異なるフラグを設定することができます。

サードパーティ製のライブラリコードと独自のコードを混在させた場合は、メンテナンスの悪夢のために自分自身を設定しています。

0

ケビン、

qmake CONFIG+=debug QMAKE_CXXFLAGS_WARN_ON=-w QMAKE_CFLAGS_WARN_ON=-w 

はあなたのライブラリが含まれている場合-isystemを使用して何

3

を を行う必要があります。プロジェクトファイルに

例えば:

QMAKE_CXXFLAGS += -isystem /usr/local/boost_1_44_0 
0

マーティンは

QMAKE_CXXFLAGS += -isystem ... 

経由含めるディレクトリを追加するだけで、それぞれのヘッダに警告を抑制書いたように。プロジェクトのソースファイル(またはプロジェクト全体)の警告を無効にする必要はなく、#pragmasまたはwrappersファイルを使用して混乱させる必要もありません。

QtCreatorを使用している場合は、ディレクトリをINCLUDEPATHに追加して、インデクサーがヘッダーを取得するようにします。

関連する問題