【问题标题】:Gcc compilation for different targets针对不同目标的 Gcc 编译
【发布时间】:2014-01-16 13:37:31
【问题描述】:

我只是想了解一些关于交叉编译器的东西,这让我问了这个问题。 gcc 是一个交叉编译器。
默认情况下,如果没有指定,gcc 编译的目标架构是我正在编译源的本机目标。正确的 ?

如果以上是正确的,那么即使明确指定,它如何为几种不同的架构生成代码?
它不应该知道所有的ISA吗?这是如何管理的?他们是否拥有所有现有 ISA 的所有信息?

【问题讨论】:

    标签: gcc cross-compiling instruction-set


    【解决方案1】:

    给定的(特定的)gcc 是为特定的给定目标构建的。使用gcc -v 找出哪个。

    通常,交叉编译器作为不同的命令安装,例如avr-gcc 在 Debian 上用于 Atmel AVR 处理器(带有特定的 options ...)

    在某些架构和系统(通常是 x86 和 Linux)上,您可能会针对不同的变体进行编译。见this。特别是您可能想使用-mtune=native-march=haswell-m32 ...

    如果您自己从其source tarball 构建gcc,您将在特定配置时提供configure options(例如--program-suffix=-avr--target=avr 用于avr-gcc 等...)

    【讨论】:

    • 你的意思是这来自installing不同种类的gccs?
    • 是的,正如我在修改后的答案中所解释的那样。
    • 非常感谢。而且链接很好。从现在开始,我将参考 gnu 文档了解。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多