linux交叉编译环境有哪些

小编 366

linux交叉编译环境有:1.glibc;2.gcc;3.binutils;4.gdb。glibc和内核源代码的版本必须与目标机上实际使用的版本保持一致,它主要提供系统调用和基本函数的C库,是linux下的交叉编译环境的重要组成部分。

1.glibc

glibc 是提供系统调用和基本函数的C库,比如open,malloc,printf等等。所有动态连接的程序都要用到它,它是编译Linux系统程序很重要的组成部分。

2.gcc

gcc(GUN C Compiler)是GUN项目的C编译器套件,是针对目标系统的编译器,能够编译用C、C++、Objective C编写的程序。

3.binutils

binutils,全称是“GNU binutils”,它是一套用来构造和使用二进制所需的工具集,包括连接器、汇编器和其它用于目标文件和档案的工具。要建立嵌入式交叉编译环境,binutils工具包是必不可少的,而且binutils与GNU的C编译器gcc是紧密相集成的,没有binutils,gcc也不能正常工作。

4.gdb

gdb是一个用来调试C和C++程序的调试器(Debugger),它能使用户在程序运行时观察程序的内部结构和内存的使用情况。gdb的功能主要是监视程序中变量的值、设置断点以使程序在指定的代码行上停止执行、支持单步执行等。

延伸阅读

什么交叉编译

所谓的交叉编译就是在一种平台上编译出来的程序,是放到别的平台环境运行,即编译的环境和运行的环境不一样,属于交叉的,或称为cross。交叉编译的概念,主要使用在嵌入式开发当中。之所以需要有交叉编译,是因为嵌入式系统中的资源太少,即交叉编译出来的程序,所要运行的目标环境资源有限,所以很难进行直接的本地编译。

最常见的情况是:在进行嵌入式开发时,比如目标平台(嵌入式开发板)为最大主频200MHz的ARM的CPU,加上RAM、Nand Flash等等。在如此相对比较紧张的硬件资源的前提下,加上已经运行了嵌入式Linux程序,是很难直接去进行本地编译的,因为编译,开发会消耗较多的CPU、内存、硬盘等资源,而嵌入式开发板上的资源,除去嵌入式(Linux)系统运行部分,没太多剩余的资源供本地编译。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部