5

Clint Harris のチュートリアルを使用して、プロジェクト間のコード共有をセットアップしましたが、すべてが私のコンピューターで期待どおりに機能します。しかし、私の同僚のマシンでは、コンパイラがビルド時にスタティック ライブラリ プロジェクトからヘッダー ファイルを見つけられないようです。

私の同僚は、git リポジトリのクローンを作成して私のプロジェクトを取得しました。関連するすべてのビルド フラグと XCode 設定を n 回確認しましたが、プロジェクトは単に彼のマシンでのコンパイルを拒否しました。

これは私が同僚に依頼したもので、主にチュートリアルからコピーして貼り付けたものです。

  1. プロジェクトのディレクトリへの完全なパスに空白がないことを確認してください。
  2. プロジェクト ディレクトリ内に、"build_output" という名前の別のフォルダーを作成します。
  3. XCode の [XCode] > [Preferences] で [Building] タブを選択し、[Place Build Projects in] を [Customized location] に設定して、作成した共通ビルド ディレクトリへのパスを指定します。
  4. 「Place Intermediate Build Files in」を「With build products」に設定します。</li>
  5. [ソース ツリー] タブを選択し、[+] ボタンをクリックして列に入力して、新しいソース ツリー変数を作成します。「設定名」「表示名」ともに【スタティックライブラリを作成した共有プロジェクト名】を入れます。パスには、フレームワーク フォルダーへのフル パスを入力します。

これらの手順に従って、静的ライブラリを使用するプロジェクトは、彼のマシンでも私のマシンでも同じようにコンパイルする必要があります。しかし、そうではありません。基本的に、彼が受け取るエラーは次のとおりです。

error: TheFrameworkHeader.h: No such file or directory

次に、ヘッダーの欠落が原因で発生した一連のその他のエラー。

これをトラブルシューティングするための戦略はありますか? または、同様の経験があり、苦労して得た知識を共有できる人はいますか? 私が要約した手順に欠けているものはありますか? スタティック ライブラリをコンパイルするときに、Copy Headers ビルド フェーズでヘッダーの役割を設定する必要がありますか?

4

5 に答える 5

8

いくつかの役立つアドバイスにもかかわらず、私はこれを理解できませんでしたが、同様の状況にある人のために少し情報を提供します. 元のプロジェクトを 2 つに分割して、ライブラリと依存プロジェクトを作成しました。最初は、ライブラリとアプリケーションは同じプロジェクト内の 2 つのターゲットにすぎませんでした。その後、アプリを別のプロジェクトに移動しました。すべてがうまくいっているように見えたので、両方のプロジェクトをリモートの git リポジトリにプッシュしました。ただし、これらが他のコンピューターで複製された場合、ライブラリ ヘッダーは見つかりませんでした。

後で、元のコンピューターでプロジェクトのクローンを作成したときに同じエラーが発生したことを発見しました。多くの苦労の後、私はそれを 1 つの恐ろしい詳細に突き止めました:依存プロジェクトのフォルダーの名前です! (つまり、ライブラリではなく、アプリケーションを含むプロジェクトです。) .xcodeproject パッケージの名前ではなく、アプリケーション識別子ではなく、含まれているフォルダーの名前です。それを変更するとすぐに、すべてが機能します。(任意のコンピューターで) 元の名前に戻すと、再びヘッダーが見つかりません。

誰かがこれについて洞察を持っている場合は、回答を投稿してください!

編集:これを投稿して以来、別のプロジェクトで同じ問題が発生しました.xcodeprojectフォルダーを含むフォルダーの名前を変更するだけで問題が解決しました.

于 2009-07-17T12:14:33.917 に答える
2

Git ではなく、xcode だと思います。ここで非常によく似た問題が発生しました.xcode/xcodebuildがインクルードパスを誤って解決します(単純化します)。まったく同じライブラリプロジェクトとxcconfigファイル(svnリポジトリからのクリーンチェックアウト)を使用しますが、別のフォルダーを含みます-動作します. だから、解決策に感謝し、もうGitを責めないでください;-)

于 2010-02-23T15:13:39.723 に答える
0

私はよくこれをチェックするのを忘れます:不足しているファイル(つまり、TheFrameWorkHeader.h "がgitリポジトリにあることを確認しますか?ビルド設定は正しいかもしれませんが、ファイルはどういうわけかgitに正しく追加されませんでした。

于 2009-07-09T20:17:48.953 に答える
0

"Search Paths->User Header Search Paths" ビルド設定 (すべての構成について) が、共有 Xcode プロジェクトを含むディレクトリを指していることを再確認します (作成した新しいソース ツリー変数を使用できます)。

于 2009-07-17T00:05:42.117 に答える
0

特定のマシンでのビルドに問題がある場合、問題はマシンまたはユーザーの設定にある可能性があります。環境変数など(おそらく INCLUDE_PATH またはその関連変数の 1 つ -- XCode は GCC を使用します)。「。」がある場合があります。これらの変数の 1 つで。

これを修正する最善の方法は、必要なフォルダー パスをビルド スクリプトの -I スイッチに追加することです。

于 2009-07-09T20:08:52.903 に答える