IOSおよびAndroidデバイス用のC++コードを記述してコンパイルしたいと思います。私はしばらくの間Xcodeを使用しています(MacOSおよびWindows用のc ++コードを作成していました)。だから私は目的のためにXcodeを使いたいです。
問題は、AndroidデバイスとiPad/iPhoneの両方でC++コードをコンパイルする方法がわからないことです。 iOSとAndroidにcrossplatform-solutionを使用したいのですが、Marmalade(c ++)などのフレームワークを使用したくありません。
それは本物かどうか? :)チュートリアルやその他の役立つ資料はありますか?
IOSとAndroidでC++を確実に使用できます。両方のゲームエンジンを作成しました。
Xcodeは通常のIDEで、「Objective-C++」開発をネイティブでサポートします(コンパイラは Objective-C と C++ の両方をサポートします) 。OSとやり取りするにはObjective-Cで薄いラッパーを記述する必要がありますが、必要に応じてその他すべてをC++で記述できます。Xcodeコマンドラインツールをダウンロードすると、スクリプトからビルドすることもできます。
Eclipseは通常のIDE for Androidで、ダウンロードすると [〜#〜] ndk [〜#〜] できます= [〜#〜] jni [〜#〜] を利用してJavaとC++の間のインターフェイスを作成します。iOSと同様に、少なくともJava OSと対話するためのラッパー。
ただし、EclipseとXcodeに限定されません。たとえば emacs を使用したり、プロジェクトの設定を少し統合したりするために CMake を使用したりできます。 Emacsは非常に強力で柔軟なIDEですが、学習曲線が非常に急で、インストールは簡単ではありません。 Macでこれを行う場合は、 emacsformacosx をインストールし、 [〜#〜] ecb [〜#〜] と autocomplete をインストールすることもお勧めします。 CMakeは基本的に、1つのソースツリーから多くの異なるプロジェクトファイル(Visual Studio、Xcode、Eclipseなど)をビルドできるクロスプラットフォームビルドシステムです。 emacsと同様に、これは非常に強力ですが、学習曲線がやや急になります。すぐにジャンプしたい場合は、XcodeとEclipseの両方から始めたいと思うでしょう。 PCで開発している場合、Mac VMまたはHackintoshを使用してXcodeおよびcygwinを使用し、Android(Macbook Proユーザーが少しの手間ですぐに楽しんでください)。
ネイティブAndroid開発は間違いなくはるかに困難です。競合するデバイスセグメンテーションがはるかに多いだけでなく、ネイティブデバッグも簡単ではありません。デバイスでGDBサーバーを実行し、それに接続してブレークポイントを設定すると、多くの人がコマンドラインからこれを行います。GUIベースのIDEが必要な場合は、Eclipseで Tegra Tools を使用して成功する人もいると聞きました。
IDEから自由に使える強力なツールがあるため、まずiOSで開発することをお勧めします。メモリリークの追跡、コードのプロファイル、ブレークポイントの設定などが簡単にできます;)など。iOSで機能を開発したら、.mkファイルやAndroid native開発。
以下は、iOSのコアオブジェクトとライフサイクルに関する情報です。
androidの場合:
OSでNiceをプレイし、アプリケーションのライフサイクルを尊重している限り、C++ロジックを自由に呼び出すことができます。これはiOSで直接実行できますが、Androidを使用すると、JNIを介して呼び出しをマーシャリングする必要があります。プラットフォームの詳細をカプセル化すると、両方のプラットフォーム間でC++ロジックを共有できます。
私はC++の支持者ですが、使用するかどうかは、これらのプラットフォームの状況によって異なります。 C++は、これらのプラットフォームでは一般的な選択肢ではないため、それほど多くのドキュメントはありません(ほとんどの場合自分で)。 C++にあまり詳しくない場合は、複雑さが少し上がる可能性があります( [〜#〜] raii [〜#〜] 、 design patters 、- [〜#〜] stl [〜#〜] ?)。
これが意味のあるいくつかの状況を次に示します。
多くの人がObjective-Cでゲームを開発しているため、これらの状況ではC++を使用する必要があります[〜#〜] [〜#〜] 。ハードウェアを最大限に活用する必要がある場合や、単によりポータブルなものを必要とする場合は、検討する必要があるかもしれません。