linux实验二交叉编译和Makefile实验报告
实验二 交叉编译和Makefile
实验目的
了解和掌握交叉编译模式和方法;
了解和掌握makefile文件的编写
学会使用交叉编译工具和make工具
实验环境
预装redhat9.0(内核版本2.4.x)的PC机一台,XScale嵌入式实验箱一台(已构建嵌入式linux系统),以太网线一根,交叉编译工具链。
实验步骤
安装交叉编译器arm-linux-gcc,并配置环境。
(解压hybus-arm-linux-R1.1.tar.gz文件。
[root @localhost ~]# cp XSBASE/xsbase/Toolchain/hybus-arm-linux-R1.1.tar.gz /usr/local
[root @localhost ~]# tar zvxf /usr/local/hybus-arm-linux-R1.1.tar.gz
此时是hybus-arm-linux-R1.1.tar.gz解压完成时候的截图。
(设置路径。
[root @localhost local]# vi ~/.bash_profile
此时将会进入编辑路径的编辑框,在编辑框内添加一条路径即可。
添加的路径为:PATH=$PATH:/usr/local/hybus-arm-linux-R1.1/bin
当编辑完上面的时候,按下ESC,然后输入":wq"退出编辑框。
(使路径生效。
[root @localhost local]# source ~/.bash_profile
④测试arm-linux-gcc是否配置成功。
当出现arm-linux-gcc:No input files的时候,说明已经配置成功,没有输入文件是说明此时没有对任何一个文件进行交叉编译。
Linux简单程序设计。
(使用vi等编辑器编写一个简单程序,我现在是实现输出50以内的奇数和偶数。
[root @localhost ~]# mkdir 2008550533
[root @localhost ~]# cd 2008550533
[root @localhost 2008550533]# mkdir hehui
[root @localhost ~]# cd hehui
[root @localhost hehui]# vi ji_oushu.c
/*输出50以内的奇数和偶数*/
#include
void main()
{
int n=50;
int i=0,j=0;
printf("%d以内的奇数为:",n);
for(i=0;i
{
if(i%2==1)
printf("%d ",i);
}
printf("\n");
printf("%d以内的偶数为:",n);
for(j=0;j
{
if(j%2==0)
printf("%d ",j);
}
printf("\n");
}
(用gcc编译器编译并运行程序;使用file命令查看编译后的可执行文件信息。
[root @localhost hehui]# gcc ji_oushu.c -o hmily
[root @localhost hehui]# file hmily
hmily: ELF 32-bit LSB executable, Intel PXA255/210 PCHCIA, version 1 (SYSV), for GNU/Linux 2.4, dynamically linked (uses shared libs), for GNU/Linux 2.4, not stripped
(运行gcc编译出来的可执行文件。
[root @localhost hehui]# ./hmily
④使用交叉编译器编译并运行。
[root @localhost hehui]# arm-linux-gcc -o hmily ji_oushu.c
打开另外一个终端,输入minicom进入板子里去。
操作一下命令。
XSBase255B>boot
XSBASE login:root
[root@XSBASE /root]$ftp 7
ftp>get ~/hehui/hmily
然后按下Ctrl + D
[root@XSBASE /root]$chmod +x hmily
[root@XSBASE /root]$./hmily
Makefile文件的编写。
(编写一个文件prime.h,包含一个判断int类型的数是否为素数。
[root @localhost ~]# mkdir 2008550533/prime
[root @localhost ~]# cd 2008550533/prime
[root @local