2009-05-22 48 views

答えて

22

Cross-compilationは、ホストと呼ばれる別のシステム上の1つのコンピュータシステム(しばしばターゲットと呼ばれる)のコードをコンパイルする行為です。

ターゲットシステムがコンパイラとすべての関連ファイルをホストするには小さすぎるなど、非常に便利なテクニックです。

一般的な例には、多くの組み込みシステムだけでなく、一般的なゲームコンソールも含まれます。

+2

oh ...soシステム上でコードをコンパイルし、実行可能ファイルを別のシステムにデプロイしますか? –

+1

"必須"ウィキペディアリンク:http://en.wikipedia.org/wiki/Cross_compilation – FeatureCreep

+1

はい。システムはアーキテクチャが異なります。 – Stephan202

2

厳密には、あるホスト上の別のコードで実行するコードのコンパイルです。

CISC CPUプラットフォームでRISCバイナリを構築する場合や、32ビットシステムで64ビットバイナリを構築する場合など、ホストとバイナリ互換性のないアーキテクチャのコンパイルに関して、最も一般的に使用されます。また、たとえば、インテル®PCベースのOS上で(おそらくARM CPUアーキテクチャーを使用して)組み込みデバイスで実行するファームウェアを構築することもできます。

6

"クロスコンパイル"とは、Linuxボックスのソースをコンパイルして、MACボックスやWindowsボックスで実行することです。これは通常、クロスコンパイルプラグインを使用して実行されます。クロスコンパイルプラグインは、ネット上のさまざまなWebサーバーから簡単に入手できます。 1つは、Windowsボックス用にコンパイルするように設計されているLinuxコンパイル用のクロスコンパイルプラグインをインストールする場合です。その後、Linux/* NIXボックスのいずれかでコンパイルしたり、Windows対応の実行可能ファイルをコンパイルしてリンクすることができます。これは、単一のLinux/Windows/MACボックスにしかアクセスできないフリーランスプログラマーにとって非常に便利です。プラグインのREADMEファイルを徹底的に熟読することで、さまざまなクロスコンパイルプラグインが多数のアプリケーションをサポートします。

クロスコンパイルの方法を適用したいという特別なプロジェクトがありましたか?

2

クロスコンパイラは、ソースコードをあるアーキテクチャから別のアーキテクチャにコンパイルします。例えば

hello.c

  1. gcc hello.c(GCCは、x86アーキテクチャ用コンパイラである)
  2. arm-cortexa8-linux-gnueabihf-gcc hello.c
    (ARM -....- GCCは、ARMアーキテクチャのためのコンパイラである。)このあなたはターゲットボード(例えばrpi、beaglebone、wega board)のためにホストpc上でコンパイルしています。この例では、arm-cortexa8-linux-gnueabihf-gccは「クロスコンパイラ」と呼ばれます。

このプロセスをクロスコンパイルといいます。
詳細については、リンクを参照してください。cross compilation

関連する問題