交叉编译 host,build target的含义:
build就是你正在使用的机器,host就是你编译好的程序可以运行的平台,
target就是你编译的程序可以处理的平台.
这个 build和host比较好理解,但是target就不好办了,到底什么意思呢?
一般来说,我们平时所说的交差编译用不到他target的,
比如. /configure --build=i386-linux,--host=arm-linux就可以了,在386的平台上编译可以运行在arm板的程序.

今天阅读autobook[注1]一书,3.4节讲到了configuration name。
书中提到了build、host、target这几个变量。看起来容易让人感到一些混淆,其实这极大的简化了二进制文件格式生成的控制。 
build -- 在build系统中建立package host -- 建立好package后,package能够在host运行 target -- 经由package所产生的可执行文件能够在target上运行。
例如: 在GNU/Linux系统上交叉编译一个可以在AIX机器上运行的package。
那么 build = i*86-pc-linux-gnu host = rs6000-ibm-aix3.2 target = rs6000-ibm-aix3.2 
在GNU/Linux系统上建立一个交叉编译工具,
此交叉编译工具可以在AIX上运行,由此交叉编译出来的文件可以在ARM上运行,
那么: build = i*86-pc-linux-gnu host = rs6000-ibm-aix3.2 target = arm-linux 由此可以看出
,当建立一个package时,不必非在本地机器上建立,可以设置不同的configuration name来生成不同系统的package。

注:[1]autobook描述如何使用GNU提供的一系列autotools来管理复杂软件系统的开的。

具体解释一下,build就是你正在使用的机器,host就是你编译好的程序可以运行的平台,target就是你编译的程序可以处理的平台.
这个build和host比较好理解,但是target就不好办了,到底什么意思呢?一般来说,我们平时所说的交差编译用不到他target的
,比如./configure --build=i386-linux,--host=arm-linux就可以了,在386的平台上编译可以运行在arm板的程序.但是,一般我们都是编译程序,而不是编译工具,如果我们编译工具,
比如gcc,这个target就有用了.如果我们需要在一个我们的机器上为arm开发板编译一个可以处理mips程序的gcc,那么target就是mips了.不知道我的解释是否正确,如果大家看到了这篇帖子,觉得不对,批评指正.

最新文章

  1. 模型浏览器【Model Browser】【EF基础系列6】
  2. JavaScript中正则表达式test()、exec()、match() 方法区别
  3. String.format中大括号的加入方法
  4. postgresql - 事务
  5. 微信公众号API返回不可打印字符的处理。
  6. ProcDump
  7. Android 之 数据存储
  8. 用python产生一个好的秘钥
  9. HDU 1710 Binary Tree Traversals
  10. Linux 命令 - kill: 向进程发送信号
  11. C#- 布署WinForm程序
  12. BASH小脚本
  13. 超强1000 JQuery插件
  14. 文字在div中水平和垂直居中的的css样式
  15. 【转载】基于vw等viewport视区相对单位的响应式排版和布局
  16. tensorflow 自定义损失函数示例
  17. 洛谷P1108 低价购买题解
  18. Linux 忘记了mysql 密码
  19. LOJ.6281.数列分块入门5(分块 区间开方)
  20. Window 上安装Node.js

热门文章

  1. python下vs的使用
  2. more/less
  3. Java 面试题 四
  4. 【Android】【踩坑日记】RecyclerView获取子View的正确姿势
  5. hadoop用户和权限
  6. RecyclerView进阶:使用ItemTouchHelper实现拖拽和侧滑删除
  7. CefGlue获取网页源代码
  8. Web前端性能优化-重绘与回流
  9. Sklearn-train_test_split随机划分训练集和测试集
  10. python之scrapy初探