i686-pc linux gnu,交叉编译: --host --build --target到底什么意思?
老是在做交叉编译,其实有时候对这三个东西的理解并不是那么清楚
从交叉工具链的情况来看,可以总结如下
--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到底什么意思?相关推荐
- linux qt交叉编译opencv,c-使用Qt和opencv交叉编译到Raspberry Pi
有很多方法可以将cross-compile转换为Raspberry Pi,也发布了用于交叉编译Qt或opencv的解决方案. 但是,我找不到任何解决方案来与也使用opencv的Qt交叉编译程序. 我在 ...
- linux 建立交叉编译环境变量,ARM-Linux-gcc-4.4.3交叉编译环境终于搭建
Linux交叉编译环境终于搭建完成具体步骤: 0.软件请到友善之臂的官网下载 1.解压 tar zxvf arm-linux-gcc-4.4.3-20100728.tar.gz -C/(别make了, ...
- 高通linux系统交叉编译,【Linux】第三章 移植开源库
在开始移植前,默认已经下载好库文件并解压好 移植三部曲: ./configuer : 配置参数 make : 编译 make install : 安装 configure 配置参数说名 1 说明 在l ...
- mDNS实现之Bonjour与Avahi(二)——win/linux/arm交叉编译
0.Part1: mDNS实现之Bonjour与Avahi(一)--win/linux/arm交叉编译_平凡之路-CSDN博客官网:Bonjour - Apple Developerhttps://d ...
- linux top交叉编译_ARM Linux交叉编译工具链的制作
本次是在VMWare虚拟机里安装了CentOS5.2操作系统,并在上面编译自己的ARM交叉编译工具链,下面是相应的步骤: 首先下载crosstool0.43源码包(crosstool-0.43.tar ...
- ming window 交叉编译_opencv3编译pc端及交叉编译arm端
环境: opensuse opencv3.4.1 交叉编译器arm-openwrt-linux 作者:帅得不敢出门 https://github.com/opencv/opencv/tre ...
- 字符大小端aix linux,Go交叉编译的那些事
最近两个月,一直在搞项目的国产化移植,把golang开发好的程序,运行在国产化平台上,操作系统基本都是基于Linux,但是CPU架构除了x86,还有ARM和MIPS,我们平时的Golang都是运行于x ...
- linux虚拟机可以交叉编译吗,在Linux上交叉编译windows程序
最近几天搞 wxWidgets,由于要同时编译应用程序的 Windows 版本,又懒得在虚拟机里面编译程序,于是想到用交叉编译的方式在 Linux 上编译好 Windows 版本的程序,再用 Wine ...
- C++ Poco库的PC编译和交叉编译
C++ Poco库的PC编译和交叉编译 flyfish 文章目录 C++ Poco库的PC编译和交叉编译 环境 源码下载地址 PC编译 编译依次执行 CMakeLists.txt文件配置 代码实现 P ...
最新文章
- 企业数据中心和互联网数据中心有何不同?
- 团队项目技术规格说明书---客户端
- 关于null和undefined
- JSTL(JSP 标准标签库)和EL表达式联合使用时,进行字符的比较
- php 获取坐标api,怎么获取百度坐标api返回的json格式字符串或对象呢
- win7系统下升级IE11
- inner join 和join的区别_left join、right join和join ???
- 利用tensorflow构建AlexNet模型,实现小数量级的猫狗分类(只有train)
- 改改Python代码,运行速度还能提升6万倍,Science:先别想摩尔定律了
- 【Linux】linux下查看目录所在分区
- sorted函数python_python中排序函数sort,sorted和operator.itemgetter的使用
- java 输出一个爱心_java基础 之 几个常用的类
- c盘里appdata是什么文件夹?
- 金融工程python报告期权_金融工程专业详细解析
- python、anaconda、jupyetr notebook的安装与配置
- Python中的打包与解包
- 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询
- 2016--聊聊读书
- 软件安全测试之SQL注入
- [Delphi]:解决3DMark闪退及3DMark宕的问题