现在的位置: 首页 > 综合 > 正文

交叉编译工具链-及arm-linux-androideabi-gcc编译方法

2018年02月10日 ⁄ 综合 ⁄ 共 1124字 ⁄ 字号 评论关闭

一、编译器:

     就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码
(source code) →
预处理器
(preprocessor) → 编译器 (compiler) →
汇编程序
(assembler) →
目标代码
(object code) →
链接器
(Linker) → 可执行程序 (executables)

二、交叉编译器

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

三、交叉编译工具链(cross compilation tool chain)

工具链是一套工具,包括gcc,binutils,c库等,交叉编译工具链就是为交叉编译准备的工具链。要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链,然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。

常用在ARM平台的GNU Toolchain:

 arm-linux-gcc:交叉编译linux内核

arm-elf-gcc:主要交叉编译uclinux内核

arm-uclinux-gcc:交叉编译uclinux内核

交叉编译环境的组成:

binutils工具包:包括连接器、汇编器以及其他用于目标文件和档案的工具,如as汇编器,ld连接器等。

gcc工具包:工具链的主角,包括c编译器gcc、c++编译器g++等。

glibc库:提供系统调用的基本函数的C库,比如,printf、open等。

gdb调试工具:运行在target上的调试程序,通过串口和TCP/IP和主机连接,进行远距离调试。

 

四、EABI ABI

EABI:Embedded application binary interface, 即嵌入式应用二进制接口,是描述可连接目标代码,库目标代码,可执行文件影像,如何连接,执行和调试,以及目标代码生成过程,和c,
c++语言接口的规范,是编译连接工具的基础规范.

五、arm-linux-androideabi-gcc解释及编译方法

在linux操作系统下编译能在arm平台android系统上运行的C库或程序的交叉编译工具链编译工具
编译arm平台android系统上运行的C库的方法:

1、通过eclipse工具的NDK,通过修改android.mk文件来实现。

2、在linux系统中通过交叉编译工具进行编译

抱歉!评论已关闭.