|
|
Log In | Not a Member? |
Contact ADC |
| < Previous PageNext Page > |
アプリケーションが「何を翻訳できるか」で説明している基準を満たしているとすると、PowerPCバイナリのみのアプリケーションはインテルベースのMacintoshでは自動的に翻訳されて実行されます。テスト用に、Universal BinaryのあるアプリケーションをインテルベースのMacintosh上でPowerPCバイナリとして強制的に起動できる方法がいくつかあります。
アプリケーションについては、「「情報」ウインドウで設定する」
コマンドラインツールについては、「「ターミナル」アプリケーションを使う」
作成したアプリケーションについては、「プロパティリストを変更する」
プログラム用には、「sysctlbyname関数を使う」
このセクションでこれらの各方法について説明します。
アプリケーションの「情報」ウインドウにある「Rosettaを使って開く」オプションを選択することで、インテルベースのMacintoshコンピュータで実行するバイナリを手動で設定できます。このオプションを設定するには、アプリケーションアイコンをクリックし、CommnadキーとIキーを同時に押して「情報」ウインドウを開きます。Figure A-1に示すように設定します。
コマンドラインツールを翻訳して実行するには、「ターミナル」で次のように入力します。
ditto -arch ppc tool /tmp/<ツール名> |
/tmp/tool |
「Rosettaを使って開く」オプションのデフォルト設定を行うには、アプリケーションバンドルのInfo.plistに次のキーを追加します。
<key>LSPrefersPPC</key> |
<true/> |
このキーは、アプリケーションをPowerPCバイナリとして起動し、「Rosettaを使って開く」チェックボックスを選択することをシステムに知らせます。出荷時にネイティブでないプラグインを利用するアプリケーションを出荷する場合は、これが役に立つでしょう。
Listing A-2にあるexec_affinityルーチンは、従属起動されるプロセスに推奨されるCPU型を制御します。forkとexecを使用して、1つのアプリケーションからアプリケーションを起動している場合、このルーチンが役に立つでしょう。
ルーチンは、「sysctl.proc_exec_affinity」文字列を渡してsysctlbyname関数を呼び出し、CPU型を指定する定数を渡しています。CPU_TYPE_POWERPCを渡し、Universal BinaryのPPC実行可能ファイルを起動します(sysctlbynameの詳細については、Mac OS X Man Pagesを参照してください)。
Listing A-2 従属起動されるプロセスに推奨されるCPUの型を制御するルーチン
cpu_type_t exec_affinity (cpu_type_t new_cputype) |
{ |
cpu_type_t ret; |
cpu_type_t *newp = NULL; |
size_t sz = sizeof (cpu_type_t); |
if (new_cputype != 0) |
newp = &new_cputype; |
if (sysctlbyname("sysctl.proc_exec_affinity", |
&ret, &sz, newp, newp ? sizeof(cpu_type_t) :0) == -1) { |
fprintf(stderr, "exec_affinity:sysctlbyname failed:%s\n", |
strerror(errno)); |
return -1; |
} |
return ret; |
} |
| < Previous PageNext Page > |
Last updated: 2006-03-08
|
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 |