我只是想了解一些关于交叉编译器的事情让我问这个问题。
gcc
是一个交叉编译器
默认情况下,gcc
编译的目标体系结构如果没有指定则是我编译源的本机目标。正确吗?
如果以上是正确的,那么即使明确指定了几种不同的架构,它如何设法生成代码?
它不应该知道所有ISA的吗?这是如何管理的?他们是否拥有所有现有ISA的所有信息?
答案 0 :(得分:2)
为特定的目标构建给定(特定)gcc
。使用gcc -v
找出哪个。
通常,交叉编译器作为不同的命令安装,例如关于Atmel AVR处理器的Debian avr-gcc
(具体options ...)
在某些体系结构和系统(通常是x86和Linux)上,您可以编译不同的变体。见this。特别是,您可能希望使用-mtune=native
或-march=haswell
或-m32
...
如果您自己source tarball建立gcc
,则会在配置时间configure options(例如--program-suffix=-avr
和--target=avr
为{ {1}}等......)