什么是交叉编译

解释什么是交叉编译之前,先要明白一个概念:本地编译

我们之前常见的软件开发,都是属于本地编译:

在当前的PC下,x86的CPU下,直接编译出来程序,可以运行的程序(或者库文件),其可以直接在当前的环境,即x86的CPU下,当前电脑中,运行。

此时的编译,可以叫做,本地编译,即在当前目标平台下,编译出来的程序,也只是放到当前平台下,就可以运行的。

交叉编译,是一个和,本地编译,相对应的概念。

而所谓的,交叉编译,就是:

在一种平台上编译,编译出来的程序,是放到别的平台上运行

即编译的环境,和运行的环境,不一样,属于交叉的,此所谓cross

交叉编译,这个概念,主要和嵌入式开发有关。

例 1.1. 在x86平台上编译,在ARM平台上运行

一种最常见的例子就是:

在进行嵌入式开发时

手上有个嵌入式开发板,CPU是arm的

然后在x86的平台下开发,比如Ubuntu的Linux,或者是Win7

然后就需要:

在x86的平台上,(用交叉编译器)去编译你写好的程序代码

编译生成的(可执行的)程序,是放到目标开发板,arm的CPU上运行的

此所谓:在x86平台上编译,在ARM平台上运行

交叉编译,英文常写作cross compile,也有其他写法:crosscompile, cross compiling等

时间: 2024-08-01 22:25:49

什么是交叉编译的相关文章

linux 安装交叉编译工具

以arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2为例 1.获取要安装的交叉编译工具.(一般芯片厂商提供,也可自行下载) 2.使用tar命令:tar jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 解压缩安装到当前目录下(tar 后面参数可根据具体压缩格式进行变换) 3.使用find .pwd获取安装路径 进入到上一步解压目录使用find查找bin目录 find . -name bin.如果bin目录下有下面交叉编译工具,表

使用ndk交叉编译android各平台版本的第三方库

只要弄明白了ndk-bundle的目录结构,交叉编译的基本原理就可以自行编写脚本去编译了.从仓库拿下代码包后,一般在linux平台下编译当前平台使用的库,只要使用其自动配置脚本configure进行平台相关的配置,配置成功后就可以执行make进行编译以及安装.configure通常会在/usr/inclue和/usr/lib下检查平台支持的接口,编译时需要使用binutils和gcc两个工具集合.所以要使用ndk进行交叉编译,最基本就是要对上面4要素进行配置,就可以配置出最基本的交叉平台环境,顺

交叉编译

在一种计算机环境中运行的编译器,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译.这个编译过程就叫交叉编译. 简单地说,就是在一个平台上生成另一个平台上的可执行代码,而这种工具就是交叉编译器(cross compiler). 这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)和 操作系统(Operating System). 同一个体系结构可以运行不同的操作系统:同样,同一个操作系统也可以在不同的体系结构上运行. 常见的交叉编译例子如下: 1.在

Ubuntu 16.04 安装 arm-linux-gcc 嵌入式交叉编译环境 问题汇总

闲扯: 实习了将近半年一直在做硬件以及底层的驱动,最近要找工作了发现了对linux普遍要求很高,而且工作岗位也非常多,所以最近一些时间在时不时地接触linux. 正文:(我一时兴起开始写博客,准备不充分,图片都没有保存) 首先就是上网查找一下现成的教程,下面的网址就是一个很好的教程 http://www.cnblogs.com/softhal/p/5699381.html 第一.二.三步我都是照做的 但是在第四步的时候对于我这种新手来说就出现了一些问题: 1.第一种方法,修改bashrc文件,总

window7下 cocos2dx android交叉编译环境部署小结

上周被android交叉编译搞惨了,还好最后弄好了,写个小结以后备用吧. 步骤,1.下载cygwin的devel和shells模块 2. 2.设置环境变量 a.设置NDK_ROOT b.设置Path 编辑Path,在后面追加4个环境变量,以;号隔开(别忘了给前面的加上;),4个分别是android的sdk的platform-tools,android的sdk的tools,   cygwin的bin,上面添加的NDK_ROOT C:\Work\adt-bundle-windows-x86_64-2

Linux下获取arm的交叉编译工具链

转载请注明文章:Linux下获取arm的交叉编译工具链 出处:多客博图 这里介绍,Linux下获取arm的交叉编译工具链,比如arm-linux-gnueabihf-gcc.arm-linux-gneabihf-gcc等. 前言 这里有一个专门的说法: “arm-linux-gnueabihf-gcc是由 Linaro 公司基于GCC推出的的ARM交叉编译工具.可用于交叉编译ARM系统中所有环节的代码,包括裸机程序.u-boot.Linux kernel.filesystem和App应用程序.使

更换Qt QtEmbedded库的版本出现问题及解决(交叉编译OpenSSL)

近日将QtEmbedded库的版本由4.7.0更新到4.7.4.工具链并未改变,仍为 Target: arm-none-linux-gnueabiConfigured with: ......Thread model: posixgcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) 所有依赖的库根据需要重新下载最新版本编译.现将在此过程中出现的问题及解决方法列出,以供下次移植时参考. 1.browser程序重新编译,在开发板的命令行运行:./browse

Openwrt 交叉编译libxml2

系统环境为Ubuntu 12.04.04,配置交叉编译环境使用以下命令即可,具体路径视自己环境而定: ./configure CC=/root/openwrt/staging_dir/toolchain-mipsel_1004kc+dsp_gcc-5.3.0_musl-1.1.14/bin/mipsel-openwrt-linux-gcc CXX=/root/openwrt/staging_dir/toolchain-mipsel_1004kc+dsp_gcc-5.3.0_musl-1.1.14

ARM交叉编译工具链分类说明

转载整理自:http://www.veryarm.com/cross-tools 从授权上,ARM交叉编译工具链分为免费授权版和付费授权版. 免费版目前有三大主流工具商提供,第一是GNU(提供源码,自行编译制作),第二是 Codesourcery,第三是Linora. 收费版有ARM原厂提供的armcc.IAR提供的编译器等等,因为这些价格都比较昂贵,不适合学习用户使用,所以不做讲述. ·        arm-none-linux-gnueabi-gcc:是 Codesourcery 公司(目

Linux主机上使用交叉编译移植u-boot到树莓派

0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jessie Raspbian Jessie 1树莓派的启动过程 树莓派1,2,3的启动过程大致相同,主要分为3个阶段:ROM上的GPU bootloader启动GPU,GPU启动CPU,CPU直接启动内核或通过u-boot启动内核. 由于树莓派涉及到GPU的东西不开源,移植u-boot到树莓派并不是真正