在制作arm-linux-gcc编译工具的过程中,首先需要下载源文件。源代码文件及其版本包括:
binutils-2.19.tar.bz2,gcc-core-4.4.4.tar.bz2,gcc-g++-4.4.4.tar.bz2,glibc-2.7.tar.bz2,glibc-ports-2.7.tar.bz2,gmp-4.2.tar.bz2,mpfr-2.4.0.tar.bz2,mpc-1.0.1.tar.gz,Linux-2.6.25.tar.bz2。由于我在编译出错的过程中根据出错信息修改了相关的C代码,故没有下载相应的补丁。主要的软件包括bilinguals、cc、glibc等。其中,binutils主要生成辅助工具;gcc用来生成交叉编译器,主要生成arm-linux-gcc交叉编译工具;而glibc则提供用户程序所需的基本函数库。
为了进行编译工作,首先需要建立工作目录。我使用的是fc14.i686,虚拟机是VM7.0,Linux发行版是Fedora9。第一次编译时用的是root用户,第二次使用一般用户yyz。所有的工作目录都在/home/yyz/cross下面建立完成。在/home/yyz目录下建立cross目录,然后进入工作目录,查看当前目录。首先创建工具链文件夹:
mkdir embedded-toolchains。在该文件夹下建立几个目录:setup-dir、src-dir、Kernel、build-dir、tool-chain、program、doc。建立目录并拷贝源文件。
chmod 777 setup-dir,然后直接拷贝源文件到setup-dir目录中。
接下来需要建立编译目录。
cd embedded-toolchains,然后在build-dir目录下建立build-binutils和build-gcc目录。为了简化操作过程,可以建立一个shell命令脚本environment-variables。编写环境变量脚本envionment-variables:
export PRJROOT=/home/yyz/cross/embedded-toolchains,export TARGET=arm-linux,export PREFIX=$PRJROOT/tool-chain,export TARGET_PREFIX=$PREFIX/$TARGET,export PATH=$PREFIX/bin:$PATH。执行source ./environment-variables使环境变量生效。
接下来是安装binutils-2.19.1的过程。
cd $PRJROOT/src-dir,tar jxvf ../setup-dir/binutils-2.19.1.tar.bz2,cd $PRJROOT/build-dir/build-binutils,../../src-dir/binutils-2.19.1/configure --target=$TARGET --prefix=$PREFIX。在build-binutils目录下生成Makefile文件,然后执行make,make install。此过程比较缓慢,大约需要15分钟左右。完成后可以在$PREFIX/bin下面看到新的binutil。
以上就是在Fedora9上编译arm-linux-gcc交叉编译工具的过程。
2. 粤嵌gec6818开发板-交叉编译工具链部署记录
为了解决在archlinux操作系统上使用aur的arm-linux-gnueabi-gcc 编译时找不到stdio.h的问题,本篇文章提供了详细的部署交叉编译工具链的步骤。
首先,下载arm-linux-gnueabi-gcc-5.4.0版本的编译器包,链接已提供,提取码为6666。
若在虚拟机中操作,请确保开启了共享文件夹功能。将下载的包解压至共享文件夹的根目录。
在解压后的目录下,会发现包含编译链所需工具的usr文件夹。使用`sudo cp -r`命令将usr文件夹下的所有内容复制到`/usr/`目录下,实现文件的安装。
接下来,配置环境变量以确保编译器和相关工具能够被系统正确识别。在`/etc/profile`文件末尾添加如下代码:`export PATH=$PATH:/usr/local/arm/5.4.0/usr/bin`。
保存并退出文件后,执行`sudo source /etc/profile`命令使环境变量设置立即生效。
为使编译器能够正确地链接到目标环境的库文件,执行以下命令建立软链接:`sudo ln -s /usr/local/arm/5.4.0/usr/bin/arm-linux-gcc /bin/arm-linux-gcc` 和 `sudo ln -s /usr/local/arm/5.4.0/usr/bin/arm-linux-g++ /bin/arm-linux-g++`。
为解决共享库找不到的问题,进入`/usr/lib64`目录,检查是否有`libmpfr.so.6`文件。若不存在,则使用更高版本的共享库文件。
执行`sudo ln -s libmpfr.so.6 libmpfr.so.4`命令以解决共享库的路径问题。
至此,环境配置已完成。现在,您应能成功使用`arm-linux-gcc`编译器进行编译操作。
3. 怎么查linux的交叉工具链版本
如果交叉编译工具链的路径已经添加到path变量中的话,直接使用... -v即可查看
比如我的是arm-linux-gnueabihf-g++
那么直接arm-linux-gnueabihf-g++ -v或者是--version就可以得到版本信息了。
4. 如何安装arm-linux-gcc
对于学嵌入式linux的来说,拿到板子后,建立开发环境是开发的第一步,arm-linux-gcc是基于arm架构的linux平台交叉编译工具。下面是按转步骤。版本arm-linux-gcc-4.4.3
下载arm-linux-gcc-4.4.3.tar.gz安装包。
打开终端,输入 sudo tar xvzf arm-linux-gcc-4.4.3.tar.gz -C /
安装arm-linux-gcc-4.4.3
在终端输入sudo vim /root/.bashrc,在最后一行输入:
export PATH=$PATH:/opt/toolschain/4.4.3/bin加入arm-linux-gcc的开发环境
安装兼容库,在终端输入:sudo apt-get install g++-multilib
测试成功没有,登录root后输入: arm-linux-gcc -v
出现如上提示,说明按转成功。