2011-09-23 2 views
6

私のXcodeワークスペースにサードパーティのプロジェクトがあります(私のメインプロジェクトの依存関係です)、Xcodeはそのサードパーティのプロジェクトから警告をすべて無視します。XcodeがサードパーティのプロジェクトでLLVMビルドの警告を無視するようにしました

私はすべてのサードパーティ製のコードを置くので、私はプロジェクトのVendor/*グループのすべてのビルド警告を無視したいと思っています。

可能ですか?あなたも、あなたが-wGCC_WARN_INHIBIT_ALL_WARNINGS = YESを使用することができ、それが生成するビルド警告を無効にしたい場合は

#pragma clang diagnostic push 
// in reality, you will likely need to disable *more* than Wmultichar 
#pragma clang diagnostic ignored "-Wmultichar" 
#include <TheirLibrary/include.h> 
#pragma clang diagnostic pop 

:あなただけを含める経由で警告を心配している場合

答えて

5

サードパーティのファイルを別のターゲットでコンパイルする場合に限り、可能です。このようにして、異なるコンパイラフラグを設定することができます。

主なターゲットがアプリケーションであるとします。ビルド設定とコンパイラの警告フラグを定義しました。

ここで、サードパーティのソースを使用します。それらをプロジェクトにインポートしますが、警告が生成されます。あなたはもちろん、主要ターゲットの設定を変更することができますが、自分の設定を保持したいと思っています。

プロジェクト内にスタティックライブラリである追加のターゲットを作成するだけです。 サードパーティのファイルをメインターゲットから削除し、ライブラリに追加します。

メインターゲットのビルドフェーズで、アプリケーションをスタティックライブラリにリンクします。

このようにして、サードパーティのコードに対して異なるコンパイラ設定を使用しながら、アプリケーションでサードパーティのコードを使用することができます。

3

、あなたは、あなたがこの中に文を含めるラップすることができますリンクしたりバンドルしたりするサードパーティターゲット用

ベンダーが閉じている場合は、ベンダーに報告するのが理想です。それが開いている場合は、多分あなたはそれを自分でパッチする必要があります。

+0

それは働くかもしれないが、あなたのコードはクランのプラグマに依存するようになるだろうと私は個人的に、これは悪い選択肢だと思う...あなたの答えの詳細@Macmade – Macmade

+0

私の答えの2番目のセクション。もしあなたがライブラリにリンクしているのであれば、ある時点であなたのプログラムでも*使用したいと思うかもしれません。プロジェクトにサードパーティのヘッダが生成されたときに生成される警告を無効にすることを提案するにはどうすればよいですか?コンパイラチェックで '#pragma clang diagnostic'sをラップすることもできることに注意してください(要求された場合、コンパイラによっては未知のプラグマについて文句を言うでしょう)。 – justin

+0

あなたは正しいですが、警告がヘッダファイルから来た場合は、非常に厄介なコードを暗示する可能性があるので、別の解決策を探してみます: – Macmade

4

移動します。必要に応じて、リストをフィルタリングします。除外する項目を選択し、コンパイラフラグ列の下の空白部分をダブルクリックします。 -wを追加し、リターンを打つ:

Adding compiler flag to Build Phase

+1

残念ながら、フォルダを含むことでフィルタリングすることはできません。 –

関連する問題