2011-10-25 20 views
1

私はC++プロジェクト(Makefile付きのGNUスタイル)を持っています。私は自動補完のClang機能を使用して問題点を検出したいので、IDEとしてXCodeを使いたいと思います。XCode 4:ヘッダファイルの静的解析

これを行うには、[新規プロジェクト] - > [コマンドラインツール]を作成して、すべてのファイルをインポートしました。 .cppファイルを編集すると、Xcodeはライブの問題を検出します(偽のコードを書くとエラーが表示されます)。しかし、私の.hファイルでは同じことはできません。興味深いことに、私の#.cppファイルのヘッダファイルを#includeするとうまくいくようです。

ソースファイルのヘッダーファイルを含めることなく、これを解決するにはどうすればよいですか? また、プロジェクト(コマンドラインツール)を作成するこの方法が正しいかどうかはわかりません。私は実際には自動補完と問題検出のためにXCodeを使いたいだけですが、XCodeを使って構築したくありません(makeを実行するだけで十分です)。

答えて

1

プロジェクトの「翻訳」ファイルを作成するだけです。これは、基本的には、索引付けするヘッダーを含む.c、.cpp、.mなどのファイルになります。

根本的な問題は、Xcodeが実際に世界(またはそれがナビゲートするファイル)を索引付けするのに十分なコンテキストを持たないことです。ヘッダーの単数インデックス表現が正しくありません。愚かなように見えるかもしれませんが、それについて考えるとき、すべてのターゲットが異なるビルド設定を持ち、単数の変換がそれらを正しく適用しないため、意味があります。

Xcode 4.0は、基本的にはすべてが現在のプロジェクトのビルド設定に基づいて索引付けされましたが、それはバグであり、重要ではないプロジェクト、特にビルド設定が異なるプロジェクトでは使用できませんでした。たとえば、間違ったプロジェクトのプレフィックスヘッダーを適用するか、インクルードグラフを正しく構築する方法がわからないため、ヘッダ全体にエラーがスローされることがあります(場合によって)。

これに有益な副作用の1つは、翻訳ファイルを使用して完全にビルドを開始する前に、含まれているファイルを簡単に非公式にチェックできることです。私は実際にこの目的のためにライブラリに翻訳ファイルを持っています(そして、依存関係を検証する/ includeが正しい)。

翻訳ファイルが本当に嫌いなら、Xcode 4.0に戻るか、MacVimのclang_completeを試してみてください。

関連する問題