精华内容
下载资源
问答
  • 交叉编译环境

    2014-03-04 16:36:50
    在嵌入式系统开发中,经常用到与交叉编译(cross compiling)相关的术语,那交叉编译到底是指什么呢? 嵌入式系统往往资源都是很有限的,如果其资源和我们平常用的桌面计算机(在嵌入式系统开发中我们称之为主机...
    在嵌入式系统开发中,经常用到与交叉编译(cross compiling)相关的术语,那交叉编译到底是指什么呢?

    嵌入式系统往往资源都是很有限的,如果其资源和我们平常用的桌面计算机(在嵌入式系统开发中我们称之为主机,host machine)一样,那我想可能就不存在交叉编译这么一说了。最为典型的是,嵌入式系统的内存往往是几兆字节,且只有FLASH而没有硬盘这种大容量存储设备。也就是说在这种资源有限的环境中,我们不可能将我们的开发工具安装在嵌入式设备中(在嵌入式系统开发中我们称之为目标机,target machine),然后象我们平时做桌面开发那样,在上面进行编码、调试最后发布软件。

    现实情况是,嵌入式系统的开发是在主机上进行的,那就存在一个问题:当我们的目标机处理器与主机的处理器不同时(比如目标机是ARM处理器,而主机是x86处理器),在这种请况下,如何保证在主机上编译的程序能在目标机上运行呢?答案在于编译器上!我们说嵌入式开发用的编译器与我们平时做桌面开发的编译器是不同的,在平时,我们的编译器是运行在什么处理器上,其编译出来的可执行程序也是运行在同样的处理器上的。实际上,我们可以让一个编译器运行在x86主机上,却编译出可以在ARM上运行的可执行程序,这种编译器就是交叉编译器(cross compiler),而采用交叉编译器进行编译就是指交叉编译(cross compiling),而交叉编译器相关的环境就是指交叉编译环境(cross compiling environment)。
        
    为了让你对交叉编译环境有一个更好的认识,我举一个例子,这个例子就是VxWorks的Workbench(在早期版本中是Tornado)。这是一个VxWorks的开发环境,其除了采用Eclipse作为IDE外,后面采用的是GNU的GCC编译器进行程序编译。有人可能要问,GCC能运行在Windows上?其实,GCC不是直接运行在Windows上的,Workbench采用Cygwin作为其编译器的支撑环境,也就是说GCC及其binutils是运行在Cygwin上的。采用Workbench我们可以开发几乎所有主流处理器的嵌入式产品,而所有的工作都在Windows上完成的!

    至此,相信你对交叉编译、交叉编译器和交叉编译环境有了很好的了解了。
    展开全文
  • 交叉编译环境搭建

    2020-12-27 13:32:32
    交叉编译环境搭建 编译这个事情呢,就是把源代码编译成机器可以直接执行的机器码用的,一般来说呢,我们C或C++这样的编程语言。真说起来,java也有编译,python也有编译,只不过这些编程语言都编译成其对应...

    交叉编译环境搭建

    编译这个事情呢,就是把源代码编译成机器可以直接执行的机器码用的,一般来说呢,我们指的是C或C++这样的编程语言。真说起来,java也有编译,python也有编译,只不过这些编程语言都是编译成其对应的解释器能够解释的字节码或其他的东西,而不是机器能够直接执行的。
    Linux平台上最常用的编译工具我觉的莫过于gcc了,如果还有一些其他工具的话那就是make、qmake、cmake等等构建工具,这些都不在交叉比那一的范围内。
    由于电脑上所使用的CPU的指令集不同,比如intel造的电脑CPU都是复杂指令集的,而嵌入式开发中使用的Arm都是精简指令集的,因此在复杂指令集的电脑上编译的机器码在精简指令集上是不能使用的。毕竟看名字也能看出来,精简指令集中指令比复杂指令集要少,没有指令,那肯定就没法执行了。同时又由于一般嵌入式设备的性能都比较有限,当我们的代码文件又比较多时,如果在嵌入式设备上进行编译,会很费时间,此时,人们就想了,能不能在性能更强的电脑上编译,然后将编译结果放置到嵌入式设备上运行呢,当然是可以的,这就是交叉编译。

    正点原子的搭建方式

    该部分内容主要参考“【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.pdf”文件“第四章 第三节”,其他相关资料都可以到正点原子的论坛下载到,也不要钱。话说回来,我这次使用的硬件是正点原子的NXP IMX6ULL那个平台,屏幕是4.3寸的。
    交叉编译环境的搭建比较简单:

    1. 复制正点原子给的“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz”文件到Ubuntu中
    # 由于我是用的是WSL2,所以可以直接挂载windows中的硬盘,复制起来会比较简单,如果是虚拟机,可能会比较复杂,这里不再多说
    # 直接复制到用户目录
    cp /mnt/e/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz   ~
    
    1. 解压到你喜欢的任意一个目录,并将该目录添加到环境变量
    # 直接解压
    tar -xvf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
    # 将解压后的目录复制到/opt目录并改个稍微短小好记的明自
    mv gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf /opt/gcc-arm
    # 添加环境变量
    # 需要注意的是,这里的环境变量不仅仅是Linux中的,还有windows中的,所以千万不要瞎改
    export PATH=$PATH:/opt/gcc-arm/bin
    
    1. 为了不每次都手动添加一次,可以将下述命令添加到.bashrc文件的最后一行
    # .bashrc文件是当前用户的一个配置文件,其在每次用户打开bash时执行,所以可以将添加环境变量的操作放置到该文件中,这样,就可以自动进行配置
    # 返回用户主目录
    cd ~
    # 编辑.bashrc文件
    nano .bashrc
    # 最后一行粘贴
    export PATH=$PATH:/opt/gcc-arm/bin
    # 使生效
    source .bashrc
    
    1. 安装依赖并测试
    sudo apt-get install lsb-core lib32stdc++6
    # 添加环境变量后,可以尝试一下看是否正确
    arm-linux-gnueabihf-gcc -v
    # 如果输出对应的版本号就对了,否则提示找不到命令就不对了
    

    其他搭建方式

    上述方式是纯手动,比较复杂的方式,而且据正点原子资料中讲,版本不对的话编译结果可能不能执行,因此建议使用上述方式。但是本人在搞s5p6818这个开发板的时候,曾经一度没找到相关资料,就一块板子,那么搭建交叉编译环境时是没有指定的gcc的,此时我采用了一种特比较常规而简单的方式进行的交叉编译环境搭建

    # 当时我就想,这gcc不管是什么版本应该在库中是有的吧,所以尝试性的搜索了多个关键词,最终执行
    apt search gcc-arm
    # 可以搜到如下结果
    os@DESKTOP-LIE4V1T:~$ apt search gcc-arm
    Sorting... Done
    Full Text Search... Done
    gcc-arm-linux-gnueabi/bionic-updates,bionic-security 4:7.4.0-1ubuntu2.3 amd64
      GNU C compiler for the armel architecture
    
    gcc-arm-linux-gnueabihf/bionic-updates,bionic-security 4:7.4.0-1ubuntu2.3 amd64
      GNU C compiler for the armhf architecture
    
    gcc-arm-none-eabi/bionic 15:6.3.1+svn253039-1build1 amd64
      GCC cross compiler for ARM Cortex-A/R/M processors
    
    gcc-arm-none-eabi-source/bionic 15:6.3.1+svn253039-1build1 all
      GCC cross compiler for ARM Cortex-A/R/M processors (source)
      
    # 也就是说可以直接使用apt命令进行安装,该方法简单明了,自动安装依赖,非常方便,s5p6818亲测可用,IMX6ULL这个没试
    # 安装命令如下
    sudo apt install gcc-arm-linux-gnueabihf
    

    在这里插入图片描述

    展开全文
  • 本文基于ubuntu,搭建交叉编译环境,arm64为例,交叉编译4.19.186内核源码 所谓的交叉编译:编译的平台环境与编译的成果所运行的平台,不是一类平台。通常X86平台下编译成果物,提供给arm下要运行的程序或内核。...

    本文基于ubuntu,以目标arm64为例,搭建交叉编译环境,并对linux4.19.186内核源码进行交叉编译。

    所谓的交叉编译是:编译环境的平台与编译成果所要运行的平台,不是一类平台。通常指X86平台下编译的成果,提供给arm下要运行的程序或内核。因此需要交叉编译工具链来解决平台差异化问题 。


    工具和源码准备

    1、下载交叉编译工具链
    工具链官方路径:
    http://releases.linaro.org/components/toolchain/binaries/

    也可以到国内源网站下载更快:
    https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain

    arm64用的工具链是包含aarch64关键字,选择最新版本下载并解压:

    wget  https://mirrors.tuna.tsinghua.edu.cn/armbian-releases/_toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz
    tar -xvf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz
    

    对于交叉编译工具链,做一些如下补充说明:

    1、通常不同内核版本对编译工具版本有最低要求,可以查看Documentation/Changes文档有描述,如下对于4.19.186内核的编译工具最低版本为V4.6。
    在这里插入图片描述

    2、GCC 的命名规则为: arch [-vendor] [-os] [-(gnu)eabi]-gcc
    比如 arm-linux-gnueabi-gcc ,arm-none-eabi-gcc, aarch64-linux-gnu-gcc
    • 带 [] 的是可选部分。
    • arch: 芯片架构,比如 32 位的 Arm 架构对应的 arch 为 arm,64 位的 Arm 架构对应的 arch 为 aarch64。
    • vendor :工具链提供商,大部分工具链名字里面都没有包含这部分。
    • os :编译出来的可执行文件(目标文件)针对的操作系统,比如 Linux。
    arm-none-eabi-gcc 一般适用用于 Arm Cortex-M/Cortex-R 平台,它使用的是 newlib 库。
    arm-linux-gnueabi-gcc 和 aarch64-linux-gnu-gcc 适用于 Arm Cortex-A 系列芯片,前者针对 32 位芯片,后者针对 64 位芯片,它使用的是 glibc 库。可以用来编译 u-boot、linux kernel 以及应用程序。
    另外需要补充一点的是,32 位的 Arm 和 64 位的 Arm,它们的指令集是不同的,所以需要使用不同的工具链编译。

    2、下载linux源码

    到linux官网:https://cdn.kernel.org
    下载源码:4.19.186,并解压

    wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.186.tar.xz
    tar -xvf linux-4.19.186.tar.xz
    

    安装交叉编译环境

    1、随便创建一个路径来存放工具链:/usr/bin/toolchain,整个目录拷贝到路径下:

    root@ubuntu:/home/ldy/# mkdir /usr/bin/toolchain
    root@ubuntu:/home/ldy# cp gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu /usr/bin/toolchain/ -rf
    
    

    2、设置环境变量,加入工具链存放的路径

    
    root@ubuntu:/home/ldy# export PATH=$PATH:/usr/bin/toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/
    root@ubuntu:/home/ldy# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/:/usr/bin/toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/
    
    

    3、判断工具链加入是否正常
    在这里插入图片描述


    linux源码编译

    做make交叉编译时候需要指定平台架构和编译工具:
    make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

    如果不加参数,可以直接修改顶层Makefile里变量
    ARCH ?= arm64
    CROSS_COMPILE ?= aarch64-linux-gnu-

    1、配置.config
    配置.config有两种方法:

    • make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
      图形化手动配置并保存。
    • 选择对于芯片架构已配置好的config,进入arch/arm64/configs/,如果要选择defconfig替换.config配置文件,则执行:
      make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
     root@ubuntu:/home/ldy/linux-4.19.186# cd arch/arm64/configs/
    root@ubuntu:/home/ldy/linux-4.19.186/arch/arm64/configs# ls
    defconfig
    

    2、编译

    make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j4

    • -j4 表示4个cpu核心同时编译,加快编译速度。
      如上默认生成Image,如果要编译生成对应target镜像文件,如uImage,可以在后面加上uImage.

    • 查看源码该架构(arm64)下支持哪些target镜像,可以采用help查看。
      make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- help |grep image -i
      在这里插入图片描述
      没有对应uImage、bzImage等的target,只有Image 和Image.gz, 因此默认生成Image内核镜像文件
      从该源码的arch/arm64/MakefileMakefile下,也是可以查看支持哪些target的。
      在这里插入图片描述

    • 补充:几种内核镜像文件关系

    vmlinux: 编译出来的最原始的内核文件,未压缩。
    zImage: bzImage 是vmlinux经过gzip压缩后的文件(内核比较小采用zimage 大内核采用bzimage)。
    uImage: U-boot专用的映像文件,在zImage之前加上一个长度为0x40的tag(文件的类型、加载位置、生成时间、大小等信息)
    在这里插入图片描述

    内核安装

    1、如果是本机安装内核的话,在编译后直接执行:

    make modules_install  #安装模块
    make install          #安装内核
    

    2、 但由于是交叉环境,需要将编译的成果物安装到arm64系统机上。

    • make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules_install
      拷贝/lib/modules/ 到目标系统的/lib/modules/下

    • 拷贝 arch/ arm64/boot/zImage 到目标系统/boot下

    • 拷贝System.map 到目标系统/boot下

    (可以参考arch/arm64/boot/install.sh安装脚本)


    一些报错处理

    1、make menuconfig时遇到的报错
    scripts/Makefile.lib:196: recipe for target ‘scripts/kconfig/zconf.tab.c’ failed
    在这里插入图片描述
    解决方法:
    安装如下两软件

    • apt-get install bison
    • apt-get install flex

    2、编译报错
    scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: No such file or directory
    在这里插入图片描述
    解决方法:

    • 安装: apt-get install libssl-dev
    展开全文
  • 搭建交叉编译环境

    2011-09-28 11:15:00
    4.1、搭建交叉编译环境4.1.1、概述交叉编译,就是用运行在一种计算机环境中的编译程序,去编译出在另外一种环境下运行的代码。具有这种能力的编译器就叫交叉编译器。换而言之,就是在一个平台上生成另一个平台上的可...
    4.1、搭建交叉编译环境
    4.1.1概述
    交叉编译,就是用运行在一种计算机环境中的编译程序,去编译出在另外一种环境下运行的代码。具有这种能力的编译器就叫交叉编译器。换而言之,就是在一个平台上生成另一个平台上的可执行代码。这里所指的平台实际上包含了软/硬件两个方面的概念:操作系统(Operating System)和体系结构(Architecture)。同样是Linux系统,在不同体系结构的硬件平台上的可执行代码是不同的,譬如ARM和x86,因为它们的指令系统不一样,所以可执行代码也就有差异。同样是ARM平台,由于操作系统的实现不一样,可执行代码也会不一样。
    一般情况下,嵌入式Linux系统的资源紧张,无法安装运行所需的编译器,甚至是目标平台都还没有建立,连操作系统都没有,根本谈不上运行编译器。常用的做法是在一台PC上搭建交叉编译环境,即配置安装交叉编译工具链(针对目标平台的编译器gcc、二进制工具binutils、标准c库glibc和linux内核头文件等等),在该环境下编译出嵌入式Linux系统所需的操作系统系统、应用程序等,然后再上传到目标平台上。
    4.1.2、安装
    要搭建交叉编译环境,就需制作一个交叉编译工具链,一般有三种途径:
    ² 手工制作,一步步编译
    这种方式的难度比较大。制作交叉编译工具链所需要的源码包存在版本匹配的问题,如果编译过程中出现了问题,去修正这些问题比较困难。另外还要为制作环境安装好所需的工具软件
    ² 通过脚本编译
    用crosstool生成的脚本来制作,比手动编译难度会小一些,但是需要修改脚本,要熟悉shell脚本知识。
    ² 直接获取
    网络上有许多已经制作好的交叉编译工具链,直接下载,安装配置下就行了。
    有了交叉编译工具链后,就可以安装了。先把得到的压缩包解压到指定的目录,然后再配置系统环境。在ubuntu下安装配置ARM平台的交叉编译环境的步骤如下:
    ² 下载
    下载广州友善之臂计算机公司制作的交叉编译工具链arm-linux-gcc-4.3.2.tgz,下载地址是“http://arm9download.cncncn.com/linux/arm-linux-gcc-4.3.2.tgz。或是在网络上搜索下,找到合适的交叉编译工具链。
    ² 解压
    以root账户登录系统,把arm-linux-gcc-4.3.2.tgz拷贝到根目录下,然后解压,执行命令如下:
    # tar -zxvf arm-linux-gcc-4.3.2.tgz
    ² 配置系统环境变量
    交叉编译工具链安装好了以后,最好先配置系统环境变量,把其所在的路径加入进PATH,这样就能在任何目录下方便的使用。通常,要修改环境变量,可以修改以下三个脚本中的一个:全局(公有)配置脚本/etc/profile,所有用户登录时都要执行;Shell初始化脚本/etc/bash.bashrc,也是所有用户登录时执行的;root账户目录下的Shell配置脚本/root/.bashrc(换成其他账户的话,就在其工作目录下去找),仅仅是root账号登录时执行的。推荐修改/etc/bash.bashrc文件,方法如下:
    v 打开文件
    # vi /etc/bash.bashrc
    v 修改文件
    在最后加上一行,添加如下内容:
    export PATH=$PATH:/usr/local/arm/4.3.2/bin
    v 设置生效
    如果要使新的环境变量立即生效,而不用重启电脑,则执行如下命令:
    # source /etc/bash.bashrc
    v 验证配置
    可以使用如下指令检查环境变量是否配置成功:
    # echo $PATH
    修改其他的脚本文件方法类似,只是注意其影响是否覆盖到登录账户。
    ² 测试
    环境变量配置好了,查看下arm-linux-gcc的版本信息,在终端中输入

    # arm-linux-gcc -v

    再编写一个测试程序test.c来测试交叉编译环境是否搭建成功内容如下:

    #include <stdio.h>

    int main(void)

    {

    printf("Hello arm gcc.\n");

    return 0;

    }

    编译test.c,并用file查看可执行程序的格式信息:

    # arm-linux-gcc -o test test.c

    # file test

    test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped


    转自:http://bbs.21ic.com/icview-242437-1-1.html


    展开全文
  • 制作自己的交叉编译环境

    千次阅读 2007-01-25 19:06:00
    交叉编译是指在一台电脑上来编译另一种结构的电脑上的代码,编译生成的程序不是运行在本机上的,而是另一种结构的机子上(^_^,快晕了...),打个比 方吧,比如我的系统是x86结构的,如果我需要编译一个arm结构的程序,...
  • 自己制作arm-linux交叉编译环境(一)

    千次阅读 2010-11-06 12:14:00
    自己制作arm-linux交叉编译环境(一)-scratch篇 收藏  交叉编译是指在一台电脑上来编译另一种结构的电脑上的代码,编译生成的程序不是运行在本机上的,而是另一种结构的机子上(^_^,快晕了...),打个比方...
  • 交叉编译是指在一台电脑上来编译另一种结构的电脑上的代码,编译生成的程序不是运行在本机上的,而是另一种结构的机子上(^_^,快晕了...),打个比方吧,比如我的系统是x86结构的,如果我需要编译一个arm结构的程序,那...
  • Go交叉编译

    2020-05-17 14:52:11
    交叉编译是指在一个硬件平台生成另一个硬件平台的可执行文件。而Go提供了非常方便的交叉编译方式。 如何编译 Go交叉编译,涉及到几个环境变量的设置: GOARCH、GOOS和CGO_ENABLED。 GOARCH:编译目标平台的...
  • 交叉编译知识

    2018-04-23 22:40:02
    2、交叉开发环境交叉开发环境(Cross Development Environment)是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用“宿主机——目标机”模式。开放的交叉开发环境的典型...
  • 本文以嵌入式 Linux 环境下的 gdb 使用为例,记录交叉编译过程中一个比较关键的问题:configure 过程中 --build, --host, --target 参数的区别。...交叉编译是指在一种平台上编译出运行于另一种平台的程序。这里的平...
  • 交叉编译

    2010-09-12 17:17:00
    交叉编译(cross-compilation)是指,在某个主机平台上(比如PC上)用交叉编译器编译出可在其他平台上(比如ARM上)运行的代码的过程。 具体:交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。我们...
  • 交叉编译GDB工具链

    2020-02-19 13:29:38
    交叉编译是指在一种平台上编译出运行于另一种平台的程序。这里的平台,涉及硬件和软件两个部分,硬件平台指 CPU 架构,软件平台指操作系统。交叉编译主要针对嵌入式领域,因为嵌入式系统资源受限,没有办法在嵌入式...
  • 交叉编译原理分析

    2019-10-17 11:21:26
    交叉编译是指在一种环境(操作系统+芯片指令)中编译另外一种环境的程序。 名词定义: host:执行编译操作的环境 target:最终运行编译结果的环境 有些什么特殊的地方: 编译器一定是host中的程序,但是编译器输出...
  • ARM交叉编译工具

    千次阅读 2018-09-17 18:12:27
    交叉编译就是在一种平台架构上编译在另外一种平台体系架构运行的程序。常见的在X86的服务器上编译ARM linux的程序,或者windows环境下编译ARM MCU的程序。 交叉编译工具链一套综合开发工具,包括编译器、链接...
  • 所谓交叉编译

    2010-02-04 16:05:00
    交叉编译是指,在一种计算机环境中运行特定的编译器编译出可以在另一种环境下运行的代码的行为。之所以这样做,是不得已而为之,由于某些原因导致目的平台无法运行该编译器。 与此相对的是本地编译,即在某平台上...
  • 即编译的环境和运行的环境是不一样的。 交叉编译的原因 交叉编译处的程序,所要运行的目标环境中,各种资源都相对有限,所以很难进行直接的本地编译。 工具: 所谓工具,主要的时:和程序编译链接等相关的gcc,ld...
  • 本篇我们的目标在iPhone上运行...交叉编译 在一个平台上生成另一个平台上的可执行代码。现在我们就在Mac上写代码,在iPhone上运行,想想都刺激! 设备环境 使用的Mac和越狱iOS13.2.2的iPhoneX Arm64 新建一个he
  • 简述构建gcc交叉编译平台

    千次阅读 2012-03-22 16:59:15
    目标:编译出可以在arm板上运行的可执行文件   原理:一般情况下编译器...我们知道程序由一条条的指令结合数据构成的,系统运行程序即cpu在执行这些指令,cpu执行指令有取、译码、执行等过程。 取值就是ld
  • 软件环境: 工作站:使用2.6.x内核的Linux系统,具备GCC 3.2以上编译环境,具备网络环境。用户须拥有系统的根用户(root)权限。本文使用的Gentoo Linux系统,内核版本2.6.19,GCC版本4.1.1。 目标平台:无...
  • 交叉编译指在一个平台上生成另一个平台上的可执行代码。常见的有三种: 在Windows PC上,利用集成开发环境(ADS),运行armcc编译器,编译出针对ARM CPU的可执行代码 在Windows PC上,利用cygwin环境,运行arm-elf-...
  • 后面发现,有一样东西没有设置:TOOLPREFIX = $(ANDROID_SRC_PATH)/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/arm-linux-androideabi-这一项用Android交叉编译工具链中的arm编译器。...
  • 关于交叉开发环境

    2014-03-21 09:46:00
    交叉开发环境 交叉开发环境(Cross Development Environment)是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用“宿主机——目标机”模式。 开放的交叉开发环境的典型...
  • 需要交叉开发环境(Cross Development Environment)的支持是嵌入式应用软件开发时的一个显著特点,交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机...
  • 交叉编译指在当前平台编译出可以在其他平台环境中运行的可执行文件,称为交叉编译(cross)。 之所以要进行交叉编译是因为嵌入式系统的资源太少,即交叉编译出的程序所要运行的目标环境的资源有限,很难进行本地...
  • 1. 什么是gcc?  gcc的全称是GNU Compiler ...所谓的本地编译器,是指编译出来的程序只能够在本地环境进行运行。而gcc编译出来的程序能够在其他平台进行运行。例如嵌入式程序可在x86上编译,然后在arm上运行。  
  • 能快速,简单(主要是指脱离AndroidStudio)的把c/c++ 源码进行交叉编译成Android上的动态库,静态库,或者可执行文件。从而为逆向分析构建demo节省时间。 编译环境配置 电脑:Mac OS 10.13.4 NDK:官网下载,...
  • JNI开发环境搭建

    千次阅读 2013-11-10 22:43:45
     一、下载NDK (native develop kits),是一个交叉编译的工具链,交叉编译是指:在一个平台下(CPU,操作系统)可以编译出在另外一个平台可以运行的代码,例如我们正要做的:windows AMD intel x86 架构-> 手机 android ...
  • 交叉编译器对于嵌入式学习者无疑学习环境的前提,想要系统学习嵌入式必须安装交叉编译器。交叉编译器与其他的Gcc编译器不同,交叉指PC机的环境可以编译出ARM(即别的环境)下可以运行的代码。

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

交叉编译环境是指