交叉编译工具链arm-none-linux-gnueabi-的安装

1)安装 32 位的兼容库和 libncurses5-dev 库
在安装交叉编译工具之前需要先安装 32 位的兼容库和 libncurses5-dev 库,安装 32 兼容库需要从 ubuntu 的源库中下载,所以需要在 Linux 主机系统联网的条件下,通过终端使用如下命令安装:
vmuser@Linux-host ~$sudo apt-get install ia32-libs


若 Linux 主机系统没有安装 32 位兼容库,在使用交叉编译工具的时候可能会出现错误:
-bash: ./arm-none-linux-gnueabi-gcc: 没有那个文件或目录


在终端中使用如下命令则可以安装 libncurses5-dev 库。
vmuser@Linux-host ~$sudo apt-get install libncurses5-dev


如果没有安装此库,在使用 make menucofig 时出现如下所示的错误:
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1

make: *** [menuconfig] 错误 2


2)安装交叉编译工具链
将光盘资料中的“freescale-zlg.tar.bz2”文件通过 U 盘的方式拷贝到 Linux 主机的“/tmp”目录下,然后执行如下命令进行解压安装交叉编译工具链:
vmuser@Linux-host ~$ cd /tmp
vmuser@Linux-host /tmp$ sudo tar -jxvf freescale-zlg.tar.bz2 -C /opt/
vmuser@Linux-host /tmp$                 # 输入 vmuser 用户的密码“vmuser”

执行完解压命令后,交叉编译工具链将被安装到“/opt/freescale”目录下。交叉编译器的具体目录是“/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin”,为了方便使用,还需将该路径添加到 PATH 环境变量中,其方法为:修改“/etc/profile”文件,具体操作方法如下:
在终端中输入如下指令
vmuser@Linux-host ~$ sudo vi /etc/profile                         # 若提示输入密码,则输入“vmuser”

用 vi 编辑器打开“/etc/profile”文件后,在文件末尾增加如下一行内容:
export PATH=$PATH:/opt/freescale/usr/local/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin


文件修改并保存后,再在终端中输入如下指令,更新环境变量,使设置生效,如图4.54所示。
vmuser@Linux-host ~$ source /etc/profile


在终端输入arm-none-linux-gnueabi-并按TAB键,如果能够看到很多arm-none-linux-gnueabi-前缀的命令,则基本可以确定交叉编译器安装正确。


3.测试工具链

在“~/EasyAMR-iMX257”目录下创建一个hello文件夹,并在该文件夹下创建hello.c文件(创建方法为:右键该目录下空白处,在弹出的右键菜单中选择“创建新文档”,再在子菜
单下选择“空白文档”,然后将创建的空白文档重命名为hello.c),然后右击hello.c文件,选择“使用文本编辑器打开”菜单打开hello.c文件,然后输入如程序清单4.1所示内容。

程序清单4.1 Hello 程序清单
#include <stdio.h>
int main(void)
{
int i;
for (i=0; i<5; i++) {
printf("Hello %d!\n", i);
}
return 0;
}


输入完程序代码后保存并关闭 hello.c 文件,然后按“Ctrl+Alt+T”启动终端,输入以下命令对 hello.c 进行编译并查看编译后生成文件的属性:
vmuser@Linux-host ~$ cd /home/vmuser/EasyARM-iMX257/hello                                                                    #浏览到程序文件所在目录
vmuser@Linux-host ~/EasyARM-iMX257/hello$ arm-none-linux-gnueabi-gcc hello.c -o hello                    #编译 hello.c 文件
vmuser@Linux-host ~/EasyARM-iMX257/hello$ file hello                                                                                    #查看编译生成的 hello 文件属性


hello.c文件编译后将输出hello文件,终端执行命令及输出文件如图4.56所示。
通过终端命令运行的结果可知,hello 文件是 ARM 格式的可执行文件,说明arm-none-linux-gnueabi-工具链已经可以正常使用了。


 

展开阅读全文

没有更多推荐了,返回首页