2

メインプロジェクトといくつかの小さなサブプロジェクトがあります。小規模なプロジェクトには、自己完結型の Cocos2d アプリと、メイン プロジェクトに関連するクラスのみを含む静的ライブラリの両方が含まれます (サブプロジェクトはすべて Cocos2D フレームワークを使用します)。メイン プロジェクトは静的ライブラリに依存しています。このアプローチは理論的には正しいと思いますが、実際には機能していません。

私が見ている症状は次のとおりです。コードがメイン プロジェクトの一部として実行されると、プリプロセッサの値が機能します。サブプロジェクトのアプリを実行すると、期待どおりに実行されます。

-all_loadメインターゲットにリンカーオプションを設定しました。これは、サブプロジェクトのクラスが nib ファイルでのみ言及されているためです。コンパイラー-all_loadがコードを不必要であると誤って判断するため、クラスがメインターゲットから「最適化」されません。

すべてのサブプロジェクトを必要な .frameworks にリンクしました。

これは修正可能ですか、それともこのアプローチは失敗する運命にありますか? 静的ライブラリなしでこれらのプロジェクトを管理するには、他にどのような方法がありますか? 他の開発者がサブプロジェクトに取り組んでおり、静的ライブラリのアプローチにより、お互いに干渉することはありません。

アップデート

その質問を読み返してみると、もっと早く休憩を取るべきだったと思います。質問は問題をうまく説明していません (またはあまり意味がありません!)。問題は、サブプロジェクトを使用してコードを編成する方法に関連しています。私は今、問題をほとんど解決しました。完全に解決したら、おそらくブログ記事を書きます。

4

1 に答える 1

0

静的ライブラリは最終的に実行可能ファイルに「焼き付け」られるため、実行可能ファイルが必要になる以上に、静的ライブラリのリンクについて心配する必要はありません。

プロジェクトの依存関係を設定して、依存するフレームワークが最初にビルドされ(.framework / Headersフォルダーが適切に読み込まれるように)、次にライブラリ、次にアプリがビルドされるようにします。私はこれを複数のアプリで行い、大きな成功を収めました。

于 2011-07-08T00:46:36.627 に答える