そもそも Clang を使用するのが賢明でしょうか?[閉まっている]
-
16-09-2019 - |
質問
私は Xcode を始めたばかりで、Objective-C と Cocoa を学習しています。強化されたエラー チェックと静的アナライザーのために、Xcode 3.2 のコンパイラーを Clang に交換すると役立つでしょうか。与えられた追加機能が役に立つのか、それともデフォルト設定のままで学習を進める方が効果があるのか、ちょっと知りたいです。
どうもありがとう
ゲイリー
解決
CLANG を使用するには、いくつかのオプションがあります。
ビルドを実行して分析して、Clangの結果を確認します。
構成のプロジェクト設定では、「静的アナライザーを実行」ボックスを確認でき、コンパイルするたびにClangが実行されます。
コンパイラをGCC 4.xからClang/LLVMに変更することもできます。それはより多くのエラーとclangの警告を表示します(1つの例はそのことです
NSLog(@"A value is %@:%@", value)
十分なパラメーターを渡していないことを警告します)。
私はオプション 2 をお勧めします。ビルドごとに静的アナライザーを実行すると、それほど時間はかからず、後で大量のエラーを修正するのではなく、何かおかしなことをしているかどうかをすぐに見つけることができます。実際に表示される明確なメッセージは多くの教育的価値を提供するため、学習中の場合はこれをオンにすることはさらに理にかなっています。
オプション 3 は、エラー チェックが強化されるため、時々実行することをお勧めします。ただし、現在 XCode には iPhone デバイス用の CLANG/LLVM コンパイラがないため、シミュレータ用にコンパイルする場合にのみその設定を使用できます。その場合の最善の方法は、「Debug CLANG」という名前のデバッグ構成のコピー (プロジェクト設定の構成タブ内) を作成し、その構成を CLANG/LLVM コンパイラーを使用して静的アナライザーを実行するように設定することです。新しい構成を作成した後は、設定を元に戻し、(右上のドロップダウンから) アクティブな構成として選択し、プロジェクト設定に戻って値を編集する必要があることに注意してください。
その後、日常的な使用では、単に「デバッグ」設定を使用して静的アナライザーを使用してコンパイルし、おそらく週に 1 回「デバッグ CLANG」に切り替えて、より深い問題が存在するかどうかを確認します。
他のヒント
あなたは、実際のクランコンパイラを使用せずに静的アナライザを使用することができます。それが倍の公平なビットを構築減速として一般的にあなたのデフォルトのビルドオプションとしてアナライザを使用することはありません。
しかし、クランコンパイラでも静的解析を考慮せずに良いオプションです。あなたが指摘するように、それははるかに優れたエラー報告がありますが、主な利点は、それが私はそれがGCCとほぼ2倍高速です。テストでは、実際には、非常に高速であるということです。
、あなたはクランの静的解析を取得します。
あなたがC ++の開発を行っていない場合は、、クランへのGCCからの切り替えに多くのマイナス面があるように表示されません。あなただけのクランの静的解析のメリットを得るためにそうする必要はありません。