编译mini2440工具链

原文:http://www.adamjiang.com/pukiwiki/index.php?%E7%BC%96%E8%AF%91mini2440%E5%B7%A5%E5%85%B7%E9%93%BE



         首先,从下面的地址下载工具链  http://www.codesourcery.com/.../arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

         等待下载完成后,将工具链解压到/usr/local/目录,如果你没有编译主机上的root权限的话,你可以将工具链解压到Linux用户的home目录中的某个位置(比如${HOME}/bin)


tar xjvfo arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /usr/local


         这个操作将会在/usr/local目录中创建一个么名为arm-2008q3的目录。

         接下来,你需要将这个新进添加的工具链的位置添加到PATH变量之中。编译你的~/.bashrc文件,在其中加入新的PATH变量


export PATH=/usr/local/arm-2008q3/bin:${PATH}


         使用source命令在当前shell中启用这个变化,这样你就不需要重新登入系统使用新变量了。


source ~/.bashrc


或者直接在shell中使用export对当前shell做同样的操作。


export PATH=/usr/local/arm-2008q3/bin:${PATH}


         如果你并不是bash用户,你可以修改你使用的shell所对应的环境设置文件,比如,对于zsh来说,您应该修改~/.zsh文件。或者,你需要在每次登入shell后首先运行上面的export操作。

         因为在开发主机上进行交叉编译意味着使用开发主机的能力生成另外一个体系结构上运行的二进制代码,所以,一般来说,你需要编译的软件通常都会接受一个叫做CROSS_COMPILE的变量来指定产生哪个体系结构的代码。所以,配置工具链的最后一个步骤就是设置这个变量。如果你现在使用ls命令查看以下


ls /usr/local/arm-2008q3/bin/


         目录的话,你会看到很多以arm-none-linux-gnueabi-开始的可执行文件,而这个共同的前缀就是你需要的CROSS_COMPILE变量。现在,使用export命令设置环境变量


export CROSS_COMPILE=arm-none-linux-gnueabi-


         现在,当你编译软件的时候,Makefile在大多数情况向会取得CROSS_COMPILE所指定的交叉编译工具。当然,前提是,这些交叉编译工具在你的PATH变量上。还有一种方法是通过绝对路径来指定交叉编译工具,这样做可以更精确的为交叉编译定位,同时可以避免很多错误。你可以通过下面这样的例子指定交叉编译工具的绝对路径。


export CROSS_COMPILE=/usr/local/arm-2008q3/bin/arm-none-linux-gnueabi-


         在大多数情况下,你并不需要将上面的export命令加入~/.bashrc这样的文件,因为,你并不总是需要它们来做交叉编译。比如,你仅仅希望编译运行在开发主机上的程序时。这样,工具链就准备好了。


你可能感兴趣的:(shell,bash,Path,工具,makefile,下载工具)