嵌入式系统交叉编译
2013-12-05 22:24
190 查看
绝大多数的软件开发都是以native方式进行的,既本机开发、调试,本机运行的方式。这种方式不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(既开发板)上运行开发工具和调试工具。通常的嵌入式系统的软件开发采用一种交叉编译调试的方式,交叉编译调试环境建立在主机(既一台PC机)上,对应的开发板叫做目标板。
采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行,这就需要在强大的pc机上建立一个用于目标机的交叉编译环境。这是一个由编译器、连接器和解释器组成的综合开发环境。
交叉编器通常是采用PC(x86)作为主机来搭建开发环境进行编译,但编译出的软件能够在特定CPU体系架构的目标设备(比如ARM设备)上运行的一套编译工具。
利用运行在某机器上的编译器编译某个源程序生成在另外一台机器上运行的目标代码,这种编译器既所谓的交叉编译器(Cross Compiler)。
linux下的交叉编译环境重要包括以下几个部分:
1,针对目标系统的编译器gcc;
2,针对目标系统的二进制工具binutils;
3,目标系统的标准c库glibc,有时出于减小libc库大小的考虑,你也可以用别的c库来代替glibc,例如uClibc、newlib等;
4,目标系统的linux内核头文件。
gcc、binutils、glibc以及linux内核头文件均有各自的版本号,并不是任意组合都可以编译成功并最终建立一个交叉编译环境的。一些可以直接利用的组合方式,可以通过该网址查看:http://kegel.com/crosstool/ 当我们选择了某一种组合以后,仍然需要对源代码做相应的修改,才能最终编译成功。
Crosstool是由美国人Dan Kegel(毕业于加(利福尼亚)州工学院)开发的一套可以自动编译不同匹配版本gcc和glibc,并作测试的脚本程序。
1.准备资源文件
软件包名称 下载站点
crosstool-0.43.tar.gz http://kegel.com/crosstool/crosstool-0.43.tar.gz
binutils-2.15.tar.bz2 http://ftp.gnu.org/gnu/binutils/
gcc-3.4.5.tar.bz2 http://ftp.gnu.org/gnu/gcc
glibc-2.3.6.tar.bz2 http://ftp.gnu.org/gnu/glibc
glibc-linuxthreads-2.3.6.tar.bz2 http://ftp.gnu.org/gnu/glibc
linux-2.6.28.2.tar.bz2 http://ftp.kernel.org/pub/linux/kernel/v2.6/
linux-libc-headers-2.6.12.0.tar.bz2 http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
Linux环境下的GCC交叉编译器。
采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到高性能的主机中进行,这就需要在强大的pc机上建立一个用于目标机的交叉编译环境。这是一个由编译器、连接器和解释器组成的综合开发环境。
交叉编器通常是采用PC(x86)作为主机来搭建开发环境进行编译,但编译出的软件能够在特定CPU体系架构的目标设备(比如ARM设备)上运行的一套编译工具。
利用运行在某机器上的编译器编译某个源程序生成在另外一台机器上运行的目标代码,这种编译器既所谓的交叉编译器(Cross Compiler)。
linux下的交叉编译环境重要包括以下几个部分:
1,针对目标系统的编译器gcc;
2,针对目标系统的二进制工具binutils;
3,目标系统的标准c库glibc,有时出于减小libc库大小的考虑,你也可以用别的c库来代替glibc,例如uClibc、newlib等;
4,目标系统的linux内核头文件。
gcc、binutils、glibc以及linux内核头文件均有各自的版本号,并不是任意组合都可以编译成功并最终建立一个交叉编译环境的。一些可以直接利用的组合方式,可以通过该网址查看:http://kegel.com/crosstool/ 当我们选择了某一种组合以后,仍然需要对源代码做相应的修改,才能最终编译成功。
Crosstool是由美国人Dan Kegel(毕业于加(利福尼亚)州工学院)开发的一套可以自动编译不同匹配版本gcc和glibc,并作测试的脚本程序。
1.准备资源文件
软件包名称 下载站点
crosstool-0.43.tar.gz http://kegel.com/crosstool/crosstool-0.43.tar.gz
binutils-2.15.tar.bz2 http://ftp.gnu.org/gnu/binutils/
gcc-3.4.5.tar.bz2 http://ftp.gnu.org/gnu/gcc
glibc-2.3.6.tar.bz2 http://ftp.gnu.org/gnu/glibc
glibc-linuxthreads-2.3.6.tar.bz2 http://ftp.gnu.org/gnu/glibc
linux-2.6.28.2.tar.bz2 http://ftp.kernel.org/pub/linux/kernel/v2.6/
linux-libc-headers-2.6.12.0.tar.bz2 http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
Linux环境下的GCC交叉编译器。
相关文章推荐
- linux驱动:音频驱动(七)交叉编译alsa库及工具集alsa-utils
- qnx学习笔记-QNX系统glib-2.44交叉编译
- 交叉编译boost和opencv
- 交叉编译场景分析(arm-linux)(一)--基本知识
- 交叉编译7z
- 制作交叉编译工具链的方法总结
- 交叉编译chrome,生成makefile阶段错误
- 交叉编译gst-plugins
- cocos2d-x win32程序和NDK交叉编译
- ubuntu 利用crosstool-ng-1.8.1制作交叉编译工具链
- 交叉编译ncurses5.6
- Ubuntu 安装arm-linux-gcc交叉编译工具
- imx6交叉编译环境搭建
- Live555实战之交叉编译live555共享库
- ubuntu14.01 搭建交叉编译环境arm-linux-gcc 4.3.2
- 交叉编译xorg
- configure交叉编译
- 基于Ubuntu交叉编译FFmpeg Windows SDK
- colinux-cetos53-win7交叉编译环境配置
- GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)