交叉编译时,configure参数--host作用和意义

这篇具有很好参考价值的文章主要介绍了交叉编译时,configure参数--host作用和意义。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先看一下网上的解释 --build/--host/--target的解释:

build:执行代码编译的主机,正常的话就是你的主机系统。这个参数一般由config.guess来猜就可以。当然自己指定也可以。
 
host:编译出来的二进制程序所执行的主机,因为绝大多数是本机编译,本机执行,所以这个值就等于build。只有交叉编译的时候(也就是本机编译,其他系统机器执行)才会build和host不同。用host指定运行主机。
 
target:这个选项只有在建立交叉编译环境的时候用到,正常编译和交叉编译都不会用到。他用build主机上的编译器,编译一个新的编译器(binutils, gcc,gdb等),这个新的编译器将来编译出来的其他程序将运行在target指定的系统上。

 意思是用host参数,告诉configure脚本,编译出来的程序要在哪个平台上面运行。但--host=xxxxx , 这一串xxxxx到底是怎么决定的,网上一般告诉你arm就是arm-linux  ,mips是mipsel-linux,具体这个arm-linux/mipsel-linux是怎么回事,为什么是这串字符串,网上也没解释。为了搞清楚真相,决定把从网上下载下来的curl-curl-7_53_0.zip 源码,做两份不同的configure ,然后对比整个文件夹有什么不同。两条命令分别如下:

1: ./configure --host=armv7a-mediatek482_001_neon-linux-gnueabi

2:./configure --host=mipsel-linux

对比两份文件夹,我们发现,最主要的变化 ,就在src目录下面的Makefile,参看如下图:

--host configure,linux,arm开发,编译器,语言,c语言

由上图我们就一目了然,--host其实就是指定编译链工具的前缀的,每个厂家根据芯片,发布自己的gcc版本,gcc/ar/strip等工具前面,都会加上厂家,芯片等前缀, configure就是根据这个--host值,找到正确的交叉工具。我上面测试的例子,为什么选择--host值为:--host=armv7a-mediatek482_001_neon-linux-gnueabi,参看下图就明白了!!

--host configure,linux,arm开发,编译器,语言,c语言

从上图可以看出configure根据--host=xxxxx 会在makefile中生成编译器CC为 xxxx-gcc,这里要说一下,configure会用一段简单的代码,去测试调用xxxx-gcc存在不存在,如果不存在,仍然会把编译器默认为CC=gcc,也就是说,如果你用了一个错误的 --host=xxxxx,configure可能不会报错,最后make时,是调用你主机的gcc编译代码,这样编译出来的程序 ,在目标系统上面是没办法运行的。因此,要指定正确的--host值 ,才能调用正确的交叉编译工具。 这个一定要注意!! 

 文章来源地址https://www.toymoban.com/news/detail-551349.html

 

 

到了这里,关于交叉编译时,configure参数--host作用和意义的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LuaJit交叉编译移植到ARM Linux

    Lua与LuaJit的主要区别在于LuaJIT是基于JIT(Just-In-Time)技术开发的,可以实现动态编译和执行代码,从而提高了程序的运行效率。而Lua是基于解释器技术开发的,不能像LuaJIT那样进行代码的即时编译和执行。因此,在运行速度方面,LuaJIT要比Lua快得多。此外,LuaJIT还支持更多的

    2024年02月05日
    浏览(42)
  • ARM & Linux 基础学习 / 配置交叉编译工具链 / 编译 Linux 应用和驱动 / 编译内核

    编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料(如 百问网的《嵌入式Linux应用开发完全手册》,在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO:开发板资料》或《2.2 全系列Linux教程:在线视频与配套资料》里面可以下载到),还有参考 菜

    2024年02月04日
    浏览(54)
  • Linux交叉编译opencv并移植ARM端

    Linux交叉编译opencv并移植ARM端 - 知乎 目标平台为arm7l,此为32位ARM架构,要安装合适的编译器 注意:64位ARM架构的编译器与32位ARM架构的编译器不能通用 opencv的交叉编译工具链在../opencv3.2.0/platforms/linux 路径下,linux文件夹下是一些.cmake文件,对应不同的移植对象,我需要在rv

    2024年02月12日
    浏览(47)
  • 基于Linux平台交叉编译 flutter arm64应用

        操作系统ubuntu 20.04,开发工具Android Studio + Flutter,运行平台RK3566 Linux。截止现在Flutter官方尚未正式对Linux arm64进行支持,仅有flutter-elinux可用。开发环境的搭建过程遇到了很多的坑,幸运的是最终完成了。为避免后来者再次浪费时间,特撰此文以飨读者。     本文仅记

    2024年02月06日
    浏览(81)
  • Linux安装配置ARM交叉编译器arm-linux-gnueabihf-gcc

    ARM交叉编译器是一种用于在一种架构(通常是x86或x86-64)上生成在另一种架构(如ARM)上运行的程序的工具。这种情况称为交叉编译,因为编译器和相关工具在不同的体系结构之间进行交叉工作。 主要用途如下: 嵌入式开发: ARM交叉编译器通常用于嵌入式系统开发,其中

    2024年02月01日
    浏览(42)
  • Ubuntu上搭建ARM Linux GCC交叉编译环境

    在Ubuntu操作系统上搭建ARM Linux GCC交叉编译环境是为了能够在x86架构的主机上编译运行适用于ARM架构的程序。本文将介绍详细的步骤以及相应的源代码。 安装必要的软件包 首先,我们需要安装一些必要的软件包,包括GCC、GNU Binutils和GDB。打开终端,运行以下命令来安装这些软

    2024年02月02日
    浏览(54)
  • Rust在linux下交叉编译到arm开发板

    前段时间做了rust交叉编译到arm开发板,如果引入的包有些包含OpenSSL,ring...遇见了很多问题在网上也查阅很多资料,今天抽个时间做个汇总吧。 虚拟机里面安装rust环境,做到交叉编译的时候应该都已经有了,这个地方就不过多说了,网上找一下就有的 首先描述一下我的环境

    2024年02月15日
    浏览(51)
  • QT配置arm-linux-g++交叉编译器

    ubuntu16.4版本虚拟机 qt5.12.9版本 ,qt-everywhere-src-5.12.9(版本要一致,没试过版本不同是否可行) (qt5.15.2 qt5.14.2都装了下,按照以下流程都是完全没错误) arm-linux-g++4.8.3版本 由于最近接手公司离职员工的代码,通常我个人都是直接写Makefile来完成,对方用的Qt配合交叉编译器

    2024年01月19日
    浏览(48)
  • 交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

    自己之前一直没搞清楚这两个交叉编译器到底有什么问题,特意google一番,总结如下,希望能帮到道上和我有同样困惑的兄弟…… ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture) 在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之

    2024年04月11日
    浏览(44)
  • Linux-Arm环境下配置编译qt-everywhere及交叉编译环境

    最近在搞交叉编译的事,手上拿了个同事的香橙派玩交叉编译,现在来到了第一步,就是先在arm上配置qt的开发环境。当然了Qt没有直接提供qt on arm,而是需要自行在arm环境下编译一个qt环境出来,所以这里需要使用到qt提供的qt everywhere套件在板载系统上编译 移植Qt到ARM平台及

    2024年04月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包