005.Vmware-Linux 交叉编译环境的建立

Subject:Vmware-Linux 交叉编译环境的建立

Date:     4-Mar-2011

By:        [email protected]

 

1.FL2440 Linux内核版本:2.6.28,交叉工具链:cross-3.4.1.tar.bz2

 

2.交叉编译介绍

交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。我们常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。比如,我们在Windows平台上,可使用Visual C++开发环境,编写程序并编译成可执行程序。这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为native compilation,中文可理解为本机编译。然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的 ARM 平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在100MHz到500MHz之间。这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilation tool chain)需要很大的存储空间,并需要很强的CPU运算能力。为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平台的可执行程序。要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。常见的交叉编译例子如下:

    (1)、在Windows PC上,利用ADS(ARM 开发环境),使用armcc编译器,则可编译出针对ARM CPU的可执行代码。

    (2)、在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。

    (3)、在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARM CPU的可执行代码。

 更多请参考:http://baike.baidu.com/view/650389.htm

 

3. 建立交叉工具链目录 mkdir /usr/local/arm

 

4. 拷贝并解压工具链,然后将其移至/usr/local/arm目录下 tar jxpf cross-3.4.1.tar.bz2

    注:交叉工具链一定要放在/usr/local/arm目录下,否则交叉编译时会出错。

 

5. 编写脚本文件bashrc vi ~/.bashrc 加入export语句

005.Vmware-Linux 交叉编译环境的建立_第1张图片

注:~/.bashrc该文件包含专用于某个用户的bash shell的bash信息,当该用户登录时以及每次打开新的shell时,该文件被读取执行。

 

6. 查看 $PATH echo $PATH

 

 

7. 编写测试程序 vi hello.c(该文件存放于/calvin/nfs目录下以便供开发板通过NFS挂载)

 005.Vmware-Linux 交叉编译环境的建立_第2张图片

 

005.Vmware-Linux 交叉编译环境的建立_第3张图片

 

8.交叉编译并运行(该文件并不能执行在Vmare-Linux上)

 005.Vmware-Linux 交叉编译环境的建立_第4张图片

 

9.在开发板上通过nfs挂载/calvin/nfs目录,并运行hello

 005.Vmware-Linux 交叉编译环境的建立_第5张图片

通过NFS挂载宿主机文件可参考:003.Vmware-Linux NFS服务安装使用

 

 

 

你可能感兴趣的:(windows,工具,平台,编译器,linux内核,compilation)