2

クロスコンパイラについての回答を見たことがあります。WindowsでCコードをクロスコンパイルして、バイナリをUnix(Solaris / HPUX / Linux)でも実行するにはどうすればよいですか?

X86マシンでYがSPARC用にコンパイルする方法を知りたいのですが。良いクロスコンパイラはどこにありますか?HPOS用にコンパイルする必要もあります。

4

1 に答える 1

6

gcc はこれを完全に実行できます。Sun のコンパイラは機能するかもしれませんが、私は gcc の方が詳しいです。まず、gcc の構築に慣れ、C コンパイラだけが必要なのか、C++ やその他の言語が必要なのかを判断する必要があります。

使用しているホスト用に gcc をビルドしたら、gcc を再ビルドして、クロス コンパイルするターゲット マシンのターゲットを含めることができます。

クロス コンパイラをビルドする場合、ビルド、ホスト、ターゲットの 3 つを正しく行う必要があります。

  • build: ビルドしているマシン
  • ホスト: 構築するマシン
  • target: GCC がコードを生成するマシン

クロス コンパイラの場合、ビルドとホストは同じで、ターゲットは異なります。たとえば、Solaris x86 から Solaris Sparc にクロス コンパイルするコンパイラをビルドするようにコンパイラに指示する方法を次に示します。

./configure --build=x86_64-sun-solaris2.10 --host=x86_64-sun-solaris2.10 --target=sparc-sun-solaris2.10

次に、クロスコンパイルする必要があるターゲットごとに追加のコンパイラをビルドできます。

両方を実行するプラットフォームで 32 ビットと 64 ビットの実行可能ファイルをコンパイルするのは非常に簡単です。それ以外は、少しトリッキーになります。Mac 上の gcc は複数のターゲットで構築されており、Apple は複数のプラットフォーム用のバイナリを非常に簡単に作成できるようにしています。すべての iPhone アプリは x86 でコンパイルされ、ARM プロセッサをターゲットにしています。必要なターゲット用にビルドされたコンパイラを入手できれば、通常、クロス コンパイルはかなり簡単に実行できます。

于 2010-03-13T15:00:16.057 に答える