老是在做交叉编译,其实有时候对这三个东西的理解并不是那么清楚

从交叉工具链的情况来看,可以总结如下

--build= 谁在这里编译? 意思说你目前的编译动作在哪里跑的 ? 如果是编译一个arm工具链,虽然工具链为为arm弄的,但是构建工具链的时候是在主机上进行的。所以 --build=i686-pc-linux-gnu

--host= 目前编译出来的程序在哪里跑 ? 所以工具链好了之后,给目标系统编译程序全部是设置host为arm的。

--target=为谁编译程序,这在交叉编译的时候跟host一个意思,一般是guess的,而且configure 脚本会说是 =--host.

通常我们编译复杂的情况就是交叉编译了,据说还有一种很复杂的情况,三个平台:

比较,我现在在 i686机器上,想编译一个在 ppc上运行的交叉工具链,然后这个交叉工具链为arm生产程序,这个就算比较复杂了。

应该是binutils,gcc,libc的时候这个三个--要很谨慎的设置了。

可能是--build=i686-pc-linux-gnu

--host=ppc-xxx

--target=arm-xxx

没有实验过,可以改天实验下,学习下。续:三平台交叉编译实验

对binutils源码解压,配置如下:

../binutils-2.21.1/configure

--build=i686-pc-linux-gnu --host=armv5l-jztech-linux-gnueabi

--target=mips-linux

--prefix=/home/dbh/workspace/linux-dev/nmru/prjhome/sources/bin-build/dest

然后make,发现编译的时候大部分时候调用的armv5l-xx-gcc,顺利完成,

make install,装到dest下面:

然后 ls dest

bin  lib  mips-linux  share

看来target的确是mips,然后file 下:

file bin/mips-linux-as

bin/mips-linux-as: ELF 32-bit LSB executable, ARM, version 1 (SYSV),

dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not

stripped

mips-linux-as是个交叉编译器哦,在arm上跑的,不过target是mips,哈哈,看来有点感觉了。

这下可以明白,其实编译的时候编译系统根据合适的 host, build 来调用合适的gcc来做事情,可以看出来,在三个平台的时候,--build平台是跑编译脚本或者说make的,会调用 host的编译器,而且显而易见的是 host指定的一定是个交叉编译器。

i686-pc linux gnu,交叉编译: --host --build --target到底什么意思?相关推荐

  1. linux qt交叉编译opencv,c-使用Qt和opencv交叉编译到Raspberry Pi

    有很多方法可以将cross-compile转换为Raspberry Pi,也发布了用于交叉编译Qt或opencv的解决方案. 但是,我找不到任何解决方案来与也使用opencv的Qt交叉编译程序. 我在 ...

  2. linux 建立交叉编译环境变量,ARM-Linux-gcc-4.4.3交叉编译环境终于搭建

    Linux交叉编译环境终于搭建完成具体步骤: 0.软件请到友善之臂的官网下载 1.解压 tar zxvf arm-linux-gcc-4.4.3-20100728.tar.gz -C/(别make了, ...

  3. 高通linux系统交叉编译,【Linux】第三章 移植开源库

    在开始移植前,默认已经下载好库文件并解压好 移植三部曲: ./configuer : 配置参数 make : 编译 make install : 安装 configure 配置参数说名 1 说明 在l ...

  4. mDNS实现之Bonjour与Avahi(二)——win/linux/arm交叉编译

    0.Part1: mDNS实现之Bonjour与Avahi(一)--win/linux/arm交叉编译_平凡之路-CSDN博客官网:Bonjour - Apple Developerhttps://d ...

  5. linux top交叉编译_ARM Linux交叉编译工具链的制作

    本次是在VMWare虚拟机里安装了CentOS5.2操作系统,并在上面编译自己的ARM交叉编译工具链,下面是相应的步骤: 首先下载crosstool0.43源码包(crosstool-0.43.tar ...

  6. ming window 交叉编译_opencv3编译pc端及交叉编译arm端

    环境: opensuse   opencv3.4.1    交叉编译器arm-openwrt-linux  作者:帅得不敢出门 https://github.com/opencv/opencv/tre ...

  7. 字符大小端aix linux,Go交叉编译的那些事

    最近两个月,一直在搞项目的国产化移植,把golang开发好的程序,运行在国产化平台上,操作系统基本都是基于Linux,但是CPU架构除了x86,还有ARM和MIPS,我们平时的Golang都是运行于x ...

  8. linux虚拟机可以交叉编译吗,在Linux上交叉编译windows程序

    最近几天搞 wxWidgets,由于要同时编译应用程序的 Windows 版本,又懒得在虚拟机里面编译程序,于是想到用交叉编译的方式在 Linux 上编译好 Windows 版本的程序,再用 Wine ...

  9. C++ Poco库的PC编译和交叉编译

    C++ Poco库的PC编译和交叉编译 flyfish 文章目录 C++ Poco库的PC编译和交叉编译 环境 源码下载地址 PC编译 编译依次执行 CMakeLists.txt文件配置 代码实现 P ...

最新文章

  1. 企业数据中心和互联网数据中心有何不同?
  2. 团队项目技术规格说明书---客户端
  3. 关于null和undefined
  4. JSTL(JSP 标准标签库)和EL表达式联合使用时,进行字符的比较
  5. php 获取坐标api,怎么获取百度坐标api返回的json格式字符串或对象呢
  6. win7系统下升级IE11
  7. inner join 和join的区别_left join、right join和join ???
  8. 利用tensorflow构建AlexNet模型,实现小数量级的猫狗分类(只有train)
  9. 改改Python代码,运行速度还能提升6万倍,Science:先别想摩尔定律了
  10. 【Linux】linux下查看目录所在分区
  11. sorted函数python_python中排序函数sort,sorted和operator.itemgetter的使用
  12. java 输出一个爱心_java基础 之 几个常用的类
  13. c盘里appdata是什么文件夹?
  14. 金融工程python报告期权_金融工程专业详细解析
  15. python、anaconda、jupyetr notebook的安装与配置
  16. Python中的打包与解包
  17. 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询
  18. 2016--聊聊读书
  19. 软件安全测试之SQL注入
  20. [Delphi]:解决3DMark闪退及3DMark宕的问题

热门文章

  1. Java学习笔记18nbsp;ArrayListnbsp;和Linke…
  2. android 百度地图大头针,百度地图的集成 ---自定义大头针和弹窗
  3. JS事件监听手机屏幕触摸事件 Touch
  4. 二叉树的遍历(先序、中序、后序)
  5. 一个开源经典的MCU菜单框架设计
  6. 偶感 - 写在细雨朦胧的早晨
  7. 知识图到文本的生成——叁
  8. 2019.01.12 Presto中国区用户线下Meetup
  9. seamle***dp+rdesktop完美结合
  10. Steam道具搬运靠谱吗?Steam搬砖是什么意思,Steam搬运的教程