有人可以解释一下,交叉编译的准确定义是什么。我问这个是因为。
- 当程序被编译到编译代码的主机平台之外的不同平台(操作系统)时,许多人将其称为交叉编译。
例如:在 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 有所不同。