• 技术文章 >运维 >linux运维

    什么是linux交叉编译

    青灯夜游青灯夜游2022-04-29 18:57:12原创523

    在linux中,交叉编译是指在一个平台上生成另一个平台上的可执行代码,即编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。使用交叉编译的原因:1、目标系统没有能力在其上进行本地编译;2、有能力进行源代码编译的平台与目标平台不同。

    本教程操作环境:linux5.9.8系统、Dell G3电脑。

    交叉编译

    所谓"交叉编译(Cross_Compile)",是指编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。比如,在Intel x86架构/Linux(Ubuntu)平台下、使用交叉编译工具链生成的可执行文件,在ARM架构/Linux下运行。

    简单地说,就是在一个平台上生成另一个平台上的 可执行代码。同一个 体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。

    交叉编译是相对复杂的,必须考虑如下几个问题:

    为什么要使用交叉编译呢?主要有两个原因:

    交叉编译工具链是进行交叉编译的必不可少的工具,是嵌入式开发人员必须熟练掌握的技能。

    为什么交叉编译很难?

    便携式本机编译很困难。

    大多数程序是在 x86 硬件上开发的,在本地编译的。交叉编译会遇到两种类型的问题:程序本身的问题和构建系统的问题。

    第一类问题会影响所有非 x86 目标,包括本机和交叉构建。大多数程序对运行的机器类型做出假设,必须与相关平台匹配,否则程序将无法运行。常见的假设包括:

    大多数包的目标是在本地编译时可移植,至少会接受补丁,修复提交到适当的开发邮件列表的任何上述问题(NOMMU 问题除外)。

    然后是交叉编译。

    1.png

    除了本机编译的问题外,交叉编译还有其自身的一系列问题:

    2.png

    3.png

    相关推荐:《Linux视频教程

    以上就是什么是linux交叉编译的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux
    上一篇:linux有哪些中间件 下一篇:Linux中open和fopen的区别有哪些
    千万级数据并发解决方案

    相关文章推荐

    • linux下安装zip的命令有哪些• php在windows和linux中有什么区别吗• 手机远程linux工具有哪些• linux由哪些部分组成• linux抓包工具有哪些
    1/1

    PHP中文网