マルチデバイス アプリケーションのコンパイルとビルド

提供: Appmethod Topics
移動先: 案内検索

マルチデバイス アプリケーション:インデックス への移動


一般に、IDE でクロスプラットフォーム アプリケーションをビルドやコンパイルすることは、Appmethod でネイティブ Win32 アプリケーションをビルドやコンパイルすることと同じです。

クロスプラットフォーム アプリケーションの前提条件

32 ビット Windows 以外のプラットフォームを対象にするクロスプラットフォーム アプリケーションをコンパイルやビルドする前に、次のとおり、クロスプラットフォーム アプリケーションを構成する必要があります。

  1. クロスプラットフォーム ターゲットを追加し、ターゲット プラットフォームをアクティブ化します。
  2. ターゲット プラットフォームが 64 ビット Windows(開発用システムが 32 ビット Windows)、Mac OS X、iOS の場合、接続プロファイルを作成します
  3. Mac OS X、iOS デバイスまたは Android がターゲットである場合、SDK を Appmethod に追加します。「Mac OS X または iOS デバイス用 SDK の追加」または「Android SDK の追加」を参照してください。

ローカルの 32 ビットおよび 64 ビット Windows アプリケーションの開発では、この構成を行う必要はありません。ただし、リモートの 32 ビットおよび 64 ビット Windows ターゲット プラットフォームに対して、この構成を行うと、プラットフォーム アシスタント(デバッグの簡易化)と配置マネージャ(アプリケーション配置の簡易化)を使用できます。

クロスプラットフォーム ターゲットの出力ファイル

Win64 アプリケーションの出力ファイルは、Win32 アプリケーションの出力ファイルと同じ名前です。ただし、Win64 ファイルが出力されるディレクトリは、Win32 ファイルの場所と異なります。

Windows 以外のターゲット プラットフォームを使用したアプリケーションの出力ファイルは、一般に Win32 ファイルと同じ名前ですが、プラットフォーム固有のファイル拡張子が付きます。たとえば、静的ライブラリ(Win32 および Win64 で .lib)は、OS X および iOS では .a ファイル拡張子になります。「Appmethod によって生成されるファイルの拡張子」も参照してください。

パッケージと共有ライブラリ

Object Pascal では、特定のターゲット プラットフォーム用のライブラリが生成されます。

  • 32 ビットおよび 64 ビット Windows では、パッケージのファイル拡張子は、.bpl で、ライブラリは .dll です。
  • Mac OS X では、パッケージと(動的)ライブラリのファイル拡張子は .dylib です。Mac での出力ディレクトリは、環境変数 dylib_path で制御します。
  • iOS デバイス プラットフォームでは、パッケージと(静的)ライブラリのファイル拡張子は .a です。
  • Android プラットフォームでは、パッケージと(動的)ライブラリのファイル拡張子は .so です。

IDE で使用する命名規則の要約を次の表で示します。

プラットフォーム パッケージ 動的ライブラリ 静的ライブラリ
32 ビット Windows

file.bpl(C:\Users\Public\Documents\Appmethod\<n.n>\Bpl)

[プロジェクト オプション]の[Object Pascal コンパイラ]ページにある[パッケージの出力ディレクトリ]オプションを設定できます。

.dproj(C:\Users\<名前>\Documents\Appmethod\Projects\<プロジェクト名>)

.pas、.dfm(C:\Users\<名前>\Documents\Appmethod\Projects)

.exe、.rsm(C:\Users\<名前>\Documents\Appmethod\Projects\<プロジェクト名>\Win32\Debug)

file.dll

file.dll

64 ビット Windows

file.bpl(C:\Users\Public\Documents\Appmethod\<n.n>\Bpl\Win64)

file.dll

file.dll

Mac OS X

bplfile.dylib(C:\Users\Public\Documents\Appmethod\<n.n>\Bpl\OSX32)

libfile.dylib

file.a

iOS デバイス

file.a(C:\Users\Public\Documents\Appmethod\<n.n>\Dcp\iOSDevice)

該当なし

該当なし

Android

file.a(C:\Users\Public\Documents\Appmethod\<n.n>\Dcp\Android)

該当なし

該当なし

現在のリリースのサンプルは C:\Users\Public\Documents\Appmethod\<n.n>\Samples にあります。サンプルには、[スタート|すべてのプログラム|Embarcadero Appmethod|サンプル]からもアクセスできます。

32 ビット設計時パッケージが 64 ビット Windows アプリケーションに必要

IDE はネイティブ 32 ビット Windows アプリケーションです。したがって、IDE で 64 ビット Windows アプリケーションを設計するには、32 ビット Windows 版のすべての設計時コンポーネント、パッケージ、およびライブラリが必要です。設計時に IDE でコンポーネント、パッケージ、またはライブラリを使用するために、これらの 32 ビット版が必要です。ユーザーのアプリケーションが、実行時専用の特定コンポーネント、パッケージ、またはライブラリを使用する場合は、プロジェクトに 32 ビット版が必要ありません。

通常、IDE はプラットフォーム固有のフォルダにパッケージとライブラリを保存します。Mac OS X ファイル、iOS ファイル、Android ファイルのファイル拡張子は Windows 版と異なります。ただし、Appmethod IDE で作成された 32 ビット Windows 版と 64 ビット Windows 版のパッケージ、ライブラリ、およびコンポーネントは、ファイル名と拡張子が同じで、パスが異なるだけです。コンポーネント、パッケージ、またはライブラリを保存するとき、出力ファイルは、プラットフォーム固有のディレクトリ(Win64 または OSX32 など)に配置されます。

[プロジェクト マネージャ]がクロスプラットフォーム ファイルを処理する方法

[プロジェクト マネージャ]では、現在アクティブであるターゲット プラットフォームで決定されるとおり、プロジェクトに対して適切なプラットフォーム固有のファイル タイプが選択できます。同時に、[プロジェクト マネージャ]では、現在のプロジェクトでアクティブではないターゲット プラットフォームに関連付けられたファイル タイプは無効になります。

たとえば、ターゲット プラットフォームが Win32 であるとき、[プロジェクト マネージャ]のコマンド(ビルド、コンパイル、クリーンなど)では、.lib.obj などの Win32 ファイルが生成されます。

さらに別の例として、マルチプラットフォームのプロジェクトに次の種類のファイルが含まれることを仮定します。

  • 静的ライブラリ:
    • .a(Mac OS X ターゲット プラットフォーム用の静的ライブラリ)
    • .lib(32 ビット および 64 ビット Windows ターゲット プラットフォーム用の静的ライブラリ)
  • オブジェクト ファイル:
    • .o(Mac OS X ターゲット プラットフォーム用のオブジェクト ファイル)
    • .obj(32 ビット および 64 ビット Windows ターゲット プラットフォーム用のオブジェクト ファイル)

[プロジェクト マネージャ]では次のとおりファイルの生成を切り替えられます。

状態 32 ビット Windows 64 ビット Windows Mac OS X

有効

.lib .obj

.a .o

無効

.a .o

.lib .obj

関連項目