在'HOSTCC'和./configure --host中,“host”这个词有什么意义?

时间:2012-01-05 05:28:59

标签: cross-compiling autotools configure

假设我有一些程序的源代码,源代码使用GNU自动工具,为了保持简单,让我们说程序绝不是任何类型的开发工具。如果我有一个交叉工具链,我可以配置为使用以下平台procfoo-vendorbar-bazos进行交叉编译:

./configure --host=procfoo-vendorbar-bazos

然而,在各种源代码构建(包括Linux 2.6,

)采用的安静(呃)输出方式中
HOSTCC foo.c

意味着foo.c是使用本机编译器为我构建的系统构建的,以区别于

CC bar.c

这意味着bar.c正在使用交叉编译器为我正在构建程序的系统构建。

我是否在某处感到困惑,或HOSTCC中的'主持人'是不是./configure --host意义上的主持人?

2 个答案:

答案 0 :(得分:2)

在 autoconf 中,术语是:

  • build 是您正在编译的系统。
  • 主机是您正在构建的内容将在其上运行的系统。
  • target 是您正在构建的编译器的编译目标,在不构建编译器时无关紧要。

在其他工具中,例如 ptxdist,术语是:

  • host 是您正在构建的系统。
  • 目标是您正在构建的内容将在其上运行的系统。

因此,根据您拥有的工具,主机意味着不同的东西。

答案 1 :(得分:1)

autoconf / automake实际上没有主机编译器的概念。 CC始终是目标编译器。如果您曾经看过HOSTCC,那么它是您正在查看的软件包的开发人员的手动添加。

- host指定生成的程序要在哪种主机类型上运行。