Compilation 什么是交叉编译?

Compilation 什么是交叉编译?,compilation,cross-compiling,Compilation,Cross Compiling,什么是交叉编译?是在不同的系统(称为主机)上为一个计算机系统(通常称为目标)编译代码的行为 这是一种非常有用的技术,例如,当目标系统太小而无法承载编译器和所有相关文件时 常见的例子包括许多嵌入式系统,但也包括典型的游戏控制台。严格意义上讲,一台主机上的代码编译是为了在另一台主机上运行 最常见的是,它用于编译与主机不兼容的体系结构——例如,在CISC CPU平台上构建RISC二进制文件,或在32位系统上构建64位二进制文件。或者,例如,在基于英特尔PC的操作系统上构建要在嵌入式设备上运行的固件(可

什么是交叉编译?

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

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


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

严格意义上讲,一台主机上的代码编译是为了在另一台主机上运行

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

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


您是否考虑过要将交叉编译方法应用于的特定项目?

交叉编译器将源代码从一个体系结构编译到另一个体系结构

例如:
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
    被称为“交叉编译器”
  • 此过程称为交叉编译。

    有关更多信息,请参见链接交叉编译器是一种能够为运行编译器的平台以外的平台创建可执行代码的编译器
    例如,在Windows 7 PC上运行但生成在Android智能手机上运行的代码的编译器是交叉编译器

    从一台机器上编译多个平台需要交叉编译器。
    对于编译器来说,平台是不可行的,例如对于嵌入式系统的微控制器,因为这些系统不包含操作系统

    在半虚拟化中,一台机器运行多个操作系统,交叉编译器可以从一个主要源为每个操作系统生成一个可执行文件。

    oh..那么你在一个系统上编译代码..然后在另一个系统中部署可执行文件?是的。而且系统有不同的体系结构。大多数智能手机使用交叉编译到ARM体系结构。