有人可以解釋一下,交叉編譯的準確定義是什麼。我問這個是因為。
- 當程式被編譯到編譯程式碼的主機平台之外的不同平台(作業系統)時,許多人稱之為交叉編譯。
例如:在 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 有所不同。