Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

< Previous PageNext Page >

クロス開発のためのプロジェクトの設定

Xcodeプロジェクトとmakefileベースのプロジェクトの両方を、クロス開発機能を使用するように設定することができます。どちらのタイプのプロジェクトの場合も、次の2つの選択を行う必要があります。

  1. Mac OS Xバージョン10.2.8など、開発対象のSDKを選択します。ビルドするソフトウェアは、ここで選択するシステムバージョンまでの、利用可能な機能を使用できます。

    SDKを選択しない場合は、現在のオペレーティングシステム向けにビルドされます。

  2. 一定範囲のバージョンのオペレーティングシステムでソフトウェアを実行できるようにする必要がある場合は、v10.2などのMac OS XデプロイメントOSを選びます。デプロイメントOSは、そのソフトウェアの実行が可能な最も古いシステムバージョンを示します。

    デプロイメントOSを選択しない場合は、現在のオペレーティングシステムがターゲットになります。

In this section:

Xcodeプロジェクトの設定
makefileベースのプロジェクトの設定


Xcodeプロジェクトの設定

クロス開発機能を使用するには、プロジェクトとそのターゲット用のSDKとデプロイメントターゲットを選ぶ必要があります。Xcodeでは、プロジェクトインスペクタとターゲットインスペクタの中でこれらを選びます。

開発に使うOS SDKの選択

XcodeでSDKを選択するには、次の手順を実行します。

  1. 「グループとファイル」リストの中で、プロジェクトグループを選択します。

  2. 「プロジェクト」>「プロジェクト設定を編集」を選ぶか、Command-Iキーを押して、「情報」ウインドウを開きます。

    注: インスペクタウインドウを使用してSDKを選択することもできます。Command-Option-Iキーを押して、インスペクタウインドウを開きます。Xcodeのインスペクタと「情報」ウインドウの詳細については、『Xcode 2.2 User Guide』を参照してください。

  3. 「ターゲットSDKを使用したクロス開発」ポップアップメニューでSDKを選びます。

    結果については、Figure 2-1で示しています。“「SDK設定がビルドにどのように影響するか」”で解説しているように、プロジェクト内のターゲットはすべて、選択したSDKを使ってビルドされます。MAC_OS_X_VERSION_MAX_ALLOWEDの値は自動的に、選択したSDKに対応するように設定されます。

    メニューから選択する代わりに、テキストフィールドまたは「選択」ボタンを使ってMac OS X SDK以外のSDKを選択したり、標準以外の場所(たとえば、プロジェクトからの相対的な場所)に保存されているMac OS X SDKを選択したりできます。

    プロジェクトのターゲットごとに“「プレフィックスファイルの設定」”で解説している手順も実行する必要があります。


    Figure 2-1  XcodeでのSDKの選択

    <IMAGE>



デプロイメントOSの選択

Xcodeでは、プロジェクトレベルのビルド設定を使って、プロジェクト内の個々のターゲットやすべてのターゲットに対してデプロイメントOSを設定できます。Xcodeの中で、特定のターゲットのデプロイメントOSを選択するには、次の手順を実行します。

  1. 「グループとファイル」リストの「ターゲット」グループの中からターゲットを選択します。

  2. ターゲットのインスペクタウインドウを開きます。

  3. 「ビルド」を選択して、「ビルド」パネルを開きます。

  4. 「デプロイメント」コレクションにある「Mac OS Xデプロイメントターゲット」ビルド設定を探します。


    Figure 2-2  XcodeでのデプロイメントOSの選択

    <IMAGE>



  5. Figure 2-2に示しているように、「Mac OS Xデプロイメントターゲット」の横の「値」カラムにあるポップアップメニューを使用して、10.2や10.3などのデプロイメントOSを選びます。

    今設定したデプロイメントOSの値を対象にターゲットをビルドすると、ビルド処理は選択したバージョンに基づいて実行されます。これについては、“「SDK設定がビルドにどのように影響するか」”で解説しています。ソフトウェアは、指定するシステムのバージョンまでさかのぼって実行できます。それ以降のバージョンのシステムの機能も利用できますが、“「未定義の関数呼び出しの確認」”“「制限事項」”で解説しているように、そうした機能を利用できるかどうかを確認できるようにしておく必要があります。

    「Mac OS Xデプロイメントターゲット」ビルド設定を設定すると、MAC_OS_X_VERSION_MIN_REQUIREDが自動的にその値と同じ値に設定されます。

プロジェクトのインスペクタの「ビルド」パネルで同じ手順を使用して、プロジェクト内のすべてのターゲットに対してデプロイメントOSを設定できます。ターゲットインスペクタの中で「Mac OS Xデプロイメントターゲット」ビルド設定に明示的に割り当てた値は、そのターゲットに関しては、プロジェクトインスペクタで割り当てた値に優先します。

Important: Xcodeでは、ビルド設定MACOSX_DEPLOYMENT_TARGETを手動でオーバーライドして、10.1、10.2、10.3、10.4以外の値に設定してはなりません。設定すると、10.0に戻ります。

makefileベースのプロジェクトの設定

makefileベースのプロジェクトがある場合は、適切なオプションをコンパイルコマンドとリンクコマンドに追加することによって、クロス開発機能を利用できます。以降のセクションではこれらについて説明します。

開発に使うOS SDKの選択

makefile用にSDKを選択するには、プロジェクトのコンパイルコマンドとリンクコマンドに、適切なオプションを追加します。コンパイラに対しては、-isysrootオプションを追加します。リンカに対しては、-syslibrootオプションを追加します。GCC 4.0を使ってコンパイルとリンクを行う場合は、両方のコマンドをコマンドラインに追加する必要があります。

-isysroot-syslibrootのどちらに対しても、使用するSDKディレクトリまでのフルパスを指定する必要があります。通常は、このパスを指定するmakefileディレクトリを作成しておくと良いでしょう。以下に、簡単なCプログラム用にこれらのフラグをmakefile変数に割り当てた例を示します。

SDK=/Developer/SDKs/MacOSX10.4.0.sdk
CFLAGS= -isysroot ${SDK}
LDFLAGS= -isysroot ${SDK} -syslibroot,${SDK}

SDKディレクトリは/Developer/SDKsにあります。リンカフラグには、プログラムで必要なその他のコンパイラオプションやリンカオプションも当然含まれます。

Important: -isysrootフラグは、GCC 4.0コンパイラでもサポートされていますが、この機能のサポートは将来変わる可能性があるため、コンパイラのmanページには記載されていません。 この機能のサポートが正式にコンパイラに追加された時点で、manページに正しい情報が反映される予定です。このフラグは、古いバージョンのコンパイラではサポートされていません。

デプロイメントOSの選択

makefileでデプロイメントターゲットを設定するには、次の形式の別のmakefile変数を使用します。

ENVP= MACOSX_DEPLOYMENT_TARGET=10.3

MACOSX_DEPLOYMENT_TARGETに指定する値によって、アプリケーションの最低限のターゲットシステムが決まります。前述の例では、ターゲットシステムは10.3です。makefileでこの変数を使用するには、コンパイルコマンドとリンクコマンドの前にこれを追加します。たとえば、簡単なCプログラムでは次のようなビルドコマンドを使用することが考えられます。

testapp: main.o
    ${ENVP} ${CC} ${LDFLAGS} -o testapp main.o
main.o:
    ${ENVP} ${CC} ${CFLAGS} -c main.c -o main.o


< Previous PageNext Page >


Last updated: 2005-11-09




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice