关于交叉编译中host,build,target记载

以下为转载链接,以备以后查看所用。

http://blog.sina.com.cn/s/blog_1543d98ce0102xykc.html

一、build  host   target 的区别

(1)ubuntu16.04 的参数信息如下(gcc -v 查看)

build:执行代码编译的主机,正常的话就是你的主机系统。

host:编译出来的二进制程序所执行的主机,因为绝大多数是如果本机编译,本机执行。所以这个值就等于build。

--build=x86_64-linux-gnu  :执行代码编译的主机

--host=x86_64-linux-gnu   :编译出来的二进制程序所执行的主机

--target=x86_64-linux-gnu  :只有在建立交叉编译环境的时候用到,正常编译和交叉编译都不会用到。他用build主机上的编译器,编译一个新的编译器(binutils, gcc,gdb等),这个新的编译器将来编译出来的其他程序将运行在target指定的系统上。

(2)搭建交叉编译环境,或者是交叉编译程序

只有host !=build的时候编译才是交叉编译。否则就是正常编译

例子:

./configure --build=i686-linux-gnu  --host=arm-poky-linux-gnueabi

其中--build=i686-linux-gnu 为本机编译器的名字(ubuntu16.04)

 --host=arm-poky-linux-gnueabi(开发板的名字)

交叉编译涉及的几个名词的区别build、host、target

开源软件的交叉编译步骤:

./configure –help      查看帮助文档

./configure –prefix=安装路径 --build=i686-linux-gnu  --host=arm-poky-linux-gnueabi 

交叉编译涉及的几个名词的区别build、host、target

(3)制作交叉编译工具链

--prefix 指明安装路径

二、 交叉编译注意事项:

执行一个程序时有没有sudo 对环境变量的影响很大

例如 :当以普通用户登录时 ,将环境变量加在了当前用户下的.bashrc中,当以sudo 执行时,此刻环境变量就找不到了,因为此时找的是root下的.bashrc ,而这个文件中并没有所添加的环境变量。

 

当交叉编译工具链的环境变量在普通用户下时,在执行配置脚本只能用./configure

如果针对多用户都需要用,建议把环境变量加在root下的.bashrc中

三、 环境变量在自己写的脚本的执行:    source 相当于 .

source 读取脚本的环境变量输出到  本shell 中

此时用  source imx6qt.sh   或者 . imx6qt.sh

四、当重新交叉编译时:

必须执行 make clean –w   删除makefile文件

make distclean

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值