关于GCC编译期间编译参数--host, --target,--build的理解和记录

大学期间学的嵌入式,交叉编译的时候会指定的三个参数--host, --target,--build,工作之后没有从事嵌入式开发,这几个参数慢慢的忘了什么意思了,这几天项目开发中,编译时遇到GCC和GLIBC版本不一致的情况,再次涉及到这三个编译参数,随上网找资料理解并记录下来:

转载自【build、host和target选项 - 走看看 (zoukankan.com)

 

在交叉编译configure时,通常会需要设置--build、--host和--target选项。各个选项的含义如下:

--build:编译所用的机器的平台。

--host:编译出的代码运行的平台。

--target:编译出来的工具链生成的代码的运行平台。这个选项不常用,一般只在编译gcc、ld等工具链的过程中用到。

在不涉及到交叉编译的时候,--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

posted on 2022-11-03 10:57  lingzshen  阅读(947)  评论(0编辑  收藏  举报