0

みなさん、こんにちは:) Mac用のアプリケーションを開発する初心者です。私の質問は、Mac のさまざまな OS アーキテクチャに関するもので、これについて非常に混乱しています。私の質問が非常に安っぽい場合でも、ご容赦ください。みんなありがとう:)

  1. 10.6(SnowLeopard) の 32 ビット サポートがあることは知っています。10.7(Lion) の 32 ビット サポートがあるかどうかを知りたいですか??

  2. 私は64ビットマシンを持っています。32 ビット 10.7 が必要です。どうすればいいですか??

  3. 私は 32 ビットの iMac を持っていて、それに 10.6.8 を入れています。その上にアプリケーションを構築しました。アプリケーションは、同じく 32 ビットのユーザー開発ライブラリを使用します。このアプリケーションを、10.7(Lion) の 64 ビット プロセッサを搭載した別の Mac マシンで実行します。10.7(Lion)で同じアプリケーションをそのまま実行できますか?? 私はそうすることができませんでした。

4

1 に答える 1

1
  1. OS X は、1 つの実行可能ファイルまたはライブラリで複数のアーキテクチャ (32 ビットおよび 64 ビット Intel、PowerPC など) をサポートできるバイナリ形式を使用します。Lion のバイナリとライブラリのほとんどは、デュアル アーキテクチャの 32 ビットと 64 ビットの Intel です。はい、Lion では 32 ビットがサポートされています。

  2. 32 ビットの Lion などというものはありません。デュアルアーキテクチャOSです。カーネルを 32 または 64 ビット モードで起動し、プログラムを 32 または 64 ビット モードで実行できます。他のほとんどの OS とは異なり、32 ビット カーネルの下で 64 ビット モードでプログラムを実行することもできます。Lion でプログラムを実行するときはいつでも、プログラムに含まれるアーキテクチャと CPU の能力をチェックし、そのプログラムを実行するのに「最適な」モードを選択します。

  3. これがうまくいかない明確な理由はありません。64 ビット モードで実行されているプログラムから 32 ビット専用ライブラリを使用しようとしたり、32 ビットで実行されているプログラムから 64 ビット専用ライブラリを使用しようとすると、失敗します。ただし、プログラムが 32 ビットのみの場合、明らかにそのモードで実行されます。ユーザーが開発したライブラリは 32​​ ビットであり、OS で提供されるすべてのライブラリは 32​​ + 64 ビットです。

    Lion で 32 ビット プログラムが失敗する原因はいくつかあります。まず、あなたが言及したものとOSで提供されたもの以外のライブラリに依存していますか(たとえば、MacPorts、Fink、またはHomebrewなどによってローカルでコンパイルされたライブラリ)?その場合、それらのライブラリは 64 ビットのみでコンパイルされた可能性があります。この種の問題を回避するために、IMO ライブラリは常に関連するすべてのアーキテクチャ用にコンパイルする必要がありますが、これはデフォルトではありません。

    もう 1 つの問題の原因として考えられるのは、プログラムが実際にはプログラムではなく、別のプログラムに読み込まれる何か (たとえば、ある種のプラグイン、スクリーンセーバーなど) である場合です。その場合、プラグインは、それをロードするプログラムが実行されているモードをサポートする必要があります。Java ランタイムは 64 ビット モードで起動するため (CPU がサポートしている場合)、Java プログラムで実際にこの問題が発生する可能性があります。ライオンで。

    あなたのプログラムとあなたが得た特定のエラーについてもっと教えてください...

于 2012-12-07T19:01:29.620 に答える