什么是交叉编译?
5 回答
交叉编译是在称为主机的不同系统上为一个计算机系统(通常称为目标)编译代码的行为。
这是一种非常有用的技术,例如当目标系统太小而无法承载编译器和所有相关文件时。
常见的例子包括许多嵌入式系统,但也包括典型的游戏机。
交叉编译器将源代码从一种架构编译到另一种架构。
例如: hello.c
gcc hello.c
(gcc 是 x86 架构的编译器。)arm-cortexa8-linux-gnueabihf-gcc hello.c
(arm-....-gcc 是用于 arm 架构的编译器。)这是您在主机 pc 上为目标板(例如 rpi、beaglebone、wega 板)编译的。在此示例arm-cortexa8-linux-gnueabihf-gcc
中称为“交叉编译器”。
这个过程称为交叉编译。
查看链接了解更多信息交叉编译
“交叉编译”是在 Linux 机器上编译源代码,目的是在 MAC 或 Windows 机器上运行它。这通常使用交叉编译插件来完成,该插件可从网络上的各种 Web 服务器上轻松获得。如果要在他们的 Linux 机器上安装一个交叉编译插件,该插件旨在为 Windows 机器编译。然后他们可以为 Linux/*NIX 机器进行编译,也可以选择编译和链接 Windows 就绪的可执行文件。这对于只能访问一个 Linux/Windows/MAC 机器的自由程序员来说非常方便。请注意,各种交叉编译插件将允许大量应用程序,其中一些您可能会或可能不会认为有用,因此请仔细阅读插件的 README 文件。
您是否有想将交叉编译方法应用到的特定项目?
从严格意义上讲,它是在一台主机上编译的代码旨在在另一台主机上运行。
最常用于参考编译与主机二进制不兼容的架构——例如,在 CISC CPU 平台上构建 RISC 二进制文件,或在 32 位系统上构建 64 位二进制文件。或者,例如,构建旨在在基于英特尔 PC 的操作系统上的嵌入式设备(可能使用 ARM CPU 架构)上运行的固件。
交叉编译器是一种能够为编译器运行所在平台以外的平台创建可执行代码的编译器。
例如,在 Windows 7 PC 上运行但生成在 Android 智能手机上运行的代码的编译器就是交叉编译器。
从一台机器上编译多个平台需要交叉编译器。
编译器可能无法在平台上运行,例如嵌入式系统的微控制器,因为这些系统不包含操作系统。
在半虚拟化中,一台机器运行许多操作系统,交叉编译器可以从一个主要来源为每个操作系统生成一个可执行文件。