【发布时间】:2024-05-04 14:10:03
【问题描述】:
我刚刚意识到二进制编译器会将源代码转换为目标平台的二进制文件。有点明显......但是如果编译器以这种方式工作,那么同一个编译器如何用于不同的系统,如 x86、ARM、MIPS 等?
他们不应该“知道”硬件平台的机器语言才能知道如何构建二进制文件吗?编译器(如 gcc)是否知道所支持的每个平台的机器语言?
该系统是如何实现的?如何同时针对这么多平台优化编译器?
【问题讨论】:
-
“编译器(如 gcc)是否知道所支持的每个平台的机器语言?”单一版本的 GCC 不会,因为它将针对特定的 CPU 系列。但是 GCC 源代码树中存在对所有这些平台的支持,因此您可以为每个目标构建 GCC 版本。
标签: gcc compiler-construction compilation cross-platform