2009-03-25 1 views
4

私はこれらのリンク/ビルド/依存関係のビジネスすべてをはっきり理解していません。今、FreeTypeライブラリ(C++にあります)、iPhone用の* .aライブラリファイル(openFrameworksを使用しようとしている別のライブラリがFreeTypeに依存するため)をビルドしようとしています。具体的には、iPhoneのXcodeの「図書館を構築する」に関する初心者の質問

iPhoneでC++をコンパイルするには、* .cppを* .mmに変更するだけです。 (私はmain()のいくつかの単純なプログラムで試してみました)Xcodeでライブラリを構築するにはどうすれば

一方、もし私が自分が最も混乱しているようなリンクや建物の話題についていくつかの本や文書を推薦できるなら、それは素晴らしいことでしょう。

PS。私はすでに有料版のXcodeといくつかのサンプルアプリケーションをiPhoneにコンパイルしています。

答えて

4

.cppファイルの名前を.mmに変更すると、C++コードではなくObjective-C++コードとして扱われます。私はそれがまだ効くはずだとしても、良いアイデアだとは思わない。また、FreeTypeはC++ではなくC言語で書かれています。

Google for "compiler linker"と、それらがどのように機能するかについてのかなりの文書があります。それは文書化に役立つはずです。

iPhone用の静的ライブラリをコンパイルすることは完全に可能です。動的ライブラリやフレームワークをコンパイルすることはできませんが、それは奨励されていません。

  1. (少し赤と白のターゲットアイコン付き)「ターゲット」ノードを選択し、プロジェクトのソース/ターゲットブラウザで
  2. 開きます。
  3. ノード上で右クリックし、ポップアップメニューで[追加]を選択し、次に[新しいターゲット]を選択します。
  4. ダイアログボックスが開きます。左側にiPhone OSとMac OS Xのセクションがあります。 iPhone OSセクションはすでに選択されているはずです。もしそうでなければ。
  5. ターゲットは3つありますが、そのうちの1つは静的ライブラリです。それを選択し、[OK]をクリックします。
  6. ライブラリに次のページで名前を付けます。終了をクリックします。
  7. "ターゲット"ノードには、静的ライブラリ用の子が含まれています。ソースを追加するには、ファイルメニューを使用するか、ソースをコンパイルする子ノードにドラッグします。

希望があれば。

+0

とても詳細で便利です。どうもありがとうございました! – ivanTheTerrible

0

まず、iPhoneのC++コードをコンパイルするためにファイルの名前を変更する必要はありません。第二に、あなたはライブラリのための別のプロジェクトを作成したいと思うでしょう。 iPhoneのターゲットタイプに「静的ライブラリ」が含まれていないように見えるので、Mac OS Xプロジェクトを作成し、ARM .aファイルを出力するように変更する必要があります。自明ではありませんが、おそらく実行可能です。

また、他の多くの関連のないプロジェクトでこのコードを使用しない場合は、ソースファイルをAppプロジェクトに直接含めることができます。それらをすべて自分たちのグループに集めれば、彼らがそこにいることはほとんど分かりません。