我理解什么是交叉编译器,以及为什么要使用它们。但在一次采访中,我被问到交叉编译器在哪些方面与普通编译器不同。我告诉他们交叉编译器的目的。而且,它们的内存映射也会有所不同。但这家伙似乎并不信服。有人能告诉我与普通编译器的基本区别吗?
发布于 2010-12-01 22:04:30
普通编译器可以是交叉编译器。以GCC为例。
引用Wikipedia
GCC,一个免费的编译器软件集合,可以设置为交叉编译。它支持多种平台和语言。然而,由于有限的志愿者时间和维护工作交叉编译器所需的大量工作,在许多版本中,一些交叉编译器需要broken.citation
GCC要求为每个目标平台提供编译后的binutils副本。特别重要的是GNU汇编程序。因此,binutils首先必须正确编译,并将开关--target=some target发送到配置脚本。还必须为GCC配置相同的--target选项。然后,只要binutils创建的工具在path中可用,就可以正常运行GCC。
发布于 2010-12-01 22:10:03
交叉编译器是一种编译器,它能够为运行编译器的平台以外的平台创建可执行代码。交叉编译工具用于生成嵌入式系统或多个平台的可执行文件。它用于编译不可行的平台,如不支持操作系统的微控制器。在系统可能有一个或多个正在使用的平台的情况下,将此工具用于半虚拟化已变得越来越普遍。-维基
根据一些消息来源,你不能仅仅说java (或者其他任何使用运行时环境或虚拟机)作为交叉编译器。
实际上,交叉编译器可以从一个源代码面向多个平台。但是您可能需要分别构建它们。
发布于 2010-12-01 22:05:24
A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is run.
https://stackoverflow.com/questions/4325096
复制相似问题