什么是交叉编译?

时间:2009-05-22 10:47:23

标签: compilation cross-compiling

什么是交叉编译?

5 个答案:

答案 0 :(得分:25)

Cross-compilation是在一个称为主机的不同系统上为一个计算机系统(通常称为目标)编译代码的行为。

这是一种非常有用的技术,例如当目标系统太小而无法托管编译器和所有相关文件时。

常见示例包括许多嵌入式系统,但也包括典型的游戏控制台。

答案 1 :(得分:7)

“交叉编译”是指在Linux盒子上编译源代码,意图在MAC或Windows框上运行它。这通常使用交叉编译插件完成,该插件可通过网络上的各种Web服务器轻松获得。如果要在他们的Linux机器上安装一个交叉编译插件,该插件用于编译Windows机箱。然后,他们可以编译Linux / * NIX框,也可以选择编译和链接Windows就绪的可执行文件。对于只能访问一个Linux / Windows / MAC盒的自由程序员来说,这非常方便。请注意,各种交叉编译插件将允许大量应用程序,其中一些您可能会或可能不会认为有用,因此彻底阅读插件的README文件。

您是否有特定项目想要将交叉编译方法应用于?

答案 2 :(得分:4)

交叉编译器将源代码从一个架构编译到另一个架构。

例如:hello.c

  1. gcc hello.c(gcc是x86架构的编译器。)
  2. arm-cortexa8-linux-gnueabihf-gcc hello.c
    (arm -....-gcc是arm架构的编译器。)这是你在主机pc上编译目标板(例如rpi,beaglebone,wega board)。在此示例中,arm-cortexa8-linux-gnueabihf-gcc称为“交叉编译器”。
  3. 此过程称为交叉编译 请参阅该链接以获取更多信息cross compilation

答案 3 :(得分:2)

严格来说,它是在一个主机上编译代码,用于在另一个主机上运行。

最常见的是,它用于编译与主机不是二进制兼容的体系结构 - 例如,在CISC CPU平台上构建RISC二进制文件,或在32位系统上构建64位二进制文​​件。或者,例如,在基于英特尔PC的操作系统上构建旨在在嵌入式设备上运行的固件(可能使用ARM CPU架构)。

答案 4 :(得分:0)

交叉编译器是一种能够为除运行该编译器的平台以外的平台创建可执行代码的编译器。
例如在Windows 7 PC上运行但生成在Android智能手机上运行的代码的编译器是交叉编译器。

必须使用交叉编译器才能在一台计算机上为多个平台进行编译。
一个平台可能无法运行编译器,例如嵌入式系统的微控制器,因为这些系统不包含操作系统。
在半虚拟化环境中,一台计算机可以运行许多操作系统,并且交叉编译器可以从一个主要来源为每个操作系统生成可执行文件。

相关问题