クロスコンパイルの正確な定義が何であるかを説明できる人はいますか?私はこれを尋ねます。
- プログラムがコードがコンパイルされたホストプラットフォーム以外のプラットフォーム(オペレーティングシステム)でコンパイルされる場合、多くの人がこれをクロスコンパイルと呼びます。
例:WindowsでLinux armをコンパイルします。
- 一方、Linuxデスクトップ(i386アーキテクチャ)でプログラムをコンパイルすると、Linux arm(ARMアーキテクチャ)で実行できます。このプロセスをクロスコンパイルと呼ぶことはできますか?
ありがとうございます。
答え1
プラットフォームという用語には、プログラムがコンパイルまたは実行されるコンピュータに関するすべての詳細が含まれます。これは次のことを意味します。
- CPU:命令セット(x86、x86_64、ARM)、エンディアン(ビッグエンディアン、リトルエンディアン)
- コンパイラ:言語(例:C90、C99、C11)、ベンダー(GCC、LLVM)
- glibc や BSD libc、malloc、jemalloc などのライブラリ
- オペレーティングシステム
プログラムがコンパイルされるプラットフォームがプログラムが実行されているプラットフォームと異なる場合は、クロスコンパイルを処理する必要があります。 CPU は特定の状況によって異なります。