交叉編譯 - 平台與架構

交叉編譯 - 平台與架構

有人可以解釋一下,交叉編譯的準確定義是什麼。我問這個是因為。

  • 當程式被編譯到編譯程式碼的主機平台之外的不同平台(作業系統)時,許多人稱之為交叉編譯。

例如:在 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 有所不同。

相關內容