1. 选项含义
在交叉编译configure时,通常会需要设置–build、–host和–target选项。各个选项的含义如下:
-
–build:编译所用的机器的平台。
-
–host:编译出的代码运行的平台。
- 平台包括硬件和软件支持,一般使用目标三元组(target triple)表示,目标三元组 包含:cpu 架构、供应商、操作系统和 ABI 。
- x86_64-unknown-linux-gnu:在 host 处可以看到默认的目标三元组, cpu 架构为 x86_64 ,供应商为 unknown ,操作系统为 linux ,ABI 为 gnu 。
- 平台包括硬件和软件支持,一般使用目标三元组(target triple)表示,目标三元组 包含:cpu 架构、供应商、操作系统和 ABI 。
-
–target:编译出来的工具链生成的代码的运行平台。这个选项不常用,一般只在编译gcc、ld等工具链的过程中用到。
这个选项只有在建立交叉编译环境的时候用到,正常编译和交叉编译都不会用到。他用build主机上的编译器,编译一个新的编译器(binutils, gcc,gdb等),这个新的编译器将来编译出来的其他程序将运行在target指定的系统上。
2. 举例
-
在不涉及到交叉编译的时候,–build、–host、–target是一样的,不需要特别设置。交叉编译的时候,比如需要在x86平台编译arm程序,就需要设置–build和–host选项。
-
通常,本机上的gcc、ld等工具是没有前缀的,这个时候–build可以设置为空。交叉编译工具链通常都有一个前缀,比如arm-unknown-linux-gnueabi-gcc,这个时候,–host就要设置为arm-unknown-linux-gnueabi。
Example:
./configure --build='' --host=arm-unknown-gnueabi