私はQtで書かれ、Linux上でqmakeとgccを使用して構築されたソフトウェアプロジェクトに携わっています。品質がかなり低く、大量の警告を発するサードパーティのライブラリにリンクする必要があります。ソースコードで-W-Wallを使用したいのですが、-wを厄介なサードパーティライブラリに渡して、コンソールをノイズや乱雑さから解放し、コードの品質に集中できるようにします。
qmakeで、CFLAGS / CXXFLAGSを特定のファイルおよびライブラリに条件付きで追加する方法はありますか?
私はQtで書かれ、Linux上でqmakeとgccを使用して構築されたソフトウェアプロジェクトに携わっています。品質がかなり低く、大量の警告を発するサードパーティのライブラリにリンクする必要があります。ソースコードで-W-Wallを使用したいのですが、-wを厄介なサードパーティライブラリに渡して、コンソールをノイズや乱雑さから解放し、コードの品質に集中できるようにします。
qmakeで、CFLAGS / CXXFLAGSを特定のファイルおよびライブラリに条件付きで追加する方法はありますか?
Jonathan さん、問題はソース ファイルにサード パーティのライブラリのヘッダー ファイルが含まれているところにあると思いますが、後者の警告をオフにしたいと考えています。
ケビン、プラグマを使用して警告を制御できると思います: gcc diagnostic pragmas
サードパーティ ライブラリの #includes の前後にこれらを追加できます。
-isystemを使用してライブラリを含めるとどうなりますか。
プロジェクトファイル内例:
QMAKE_CXXFLAGS += -isystem /usr/local/boost_1_44_0
通常、サードパーティのライブラリは独自のコードとは別のディレクトリに構築するため、別のmakefileを使用して、そのコンパイルに別のフラグのセットを配置できます。
サードパーティのライブラリコードを独自のコードと混合した場合は、メンテナンスの悪夢に直面することになります。
マーティンが書いたように、経由でインクルードディレクトリを追加します
QMAKE_CXXFLAGS += -isystem ...
それぞれのヘッダーで警告を抑制します。プロジェクトのソースファイル(またはプロジェクト全体)の警告を無効にしたり、#pragmasファイルやラッパーファイルを混乱させたりする必要はありません。
QtCreatorを使用している場合でも、(つまり、さらに)ディレクトリを追加しINCLUDEPATH
て、インデクサーがヘッダーを取得できるようにする必要があることに注意してください。
ケビン、
qmake CONFIG+=debug QMAKE_CXXFLAGS_WARN_ON=-w QMAKE_CFLAGS_WARN_ON=-w
する必要があります (必要に応じて CONFIG+=release を使用します...)