内容发布更新时间 : 2025/1/5 23:22:18星期一 下面是文章的全部内容请认真阅读。
实验二 交叉编译和Makefile
一、实验目的
1.了解和掌握交叉编译模式和方法; 2.了解和掌握makefile文件的编写 3.学会使用交叉编译工具和make工具
二、实验环境
预装redhat9.0(内核版本2.4.x)的PC机一台,XScale嵌入式实验箱一台(已构建嵌入式linux系统),以太网线一根,交叉编译工具链。
三、实验步骤
1.安装交叉编译器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,然后输入\退出编辑框。
?使路径生效。
[root @localhost local]# source ~/.bash_profile
④测试arm-linux-gcc是否配置成功。
当出现arm-linux-gcc:No input files的时候,说明已经配置成功,没有输入文件是说明此时没有对任何一个文件进行交叉编译。
2.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 } ?用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 ④使用交叉编译器编译并运行。 A. [root @localhost hehui]# arm-linux-gcc -o hmily ji_oushu.c B. 打开另外一个终端,输入minicom进入板子里去。 C. 操作一下命令。 XSBase255B>boot XSBASE login:root [root@XSBASE /root]$ftp 192.168.0.77 ftp>get ~/hehui/hmily 然后按下Ctrl + D [root@XSBASE /root]$chmod +x hmily [root@XSBASE /root]$./hmily 3.Makefile文件的编写。 ?编写一个文件prime.h,包含一个判断int类型的数是否为素数。 [root @localhost ~]# mkdir 2008550533/prime [root @localhost ~]# cd 2008550533/prime [root @localhost prime]# vi prime.h 进入prime.h编辑预定义程序。 #ifndef __PRIME_H__ #define __PRIME_H__ extern void prime(int ); #endif 当编辑完上面的prime.h程序时候,按下ESC,然后输入\退出编辑框。 ?编写一个prime.c,实现prime.h头文件。 [root @localhost prime]# vi prime.c 进入prime.c编辑实现判定一个是否为素数的程序。 #include 当编辑完上面的prime.c程序时候,按下ESC,然后输入\退出编辑框。 ?编写一个main.c主函数,实现用户输入整数,程序告诉用户这个数是否为素数。 [root @localhost prime]# vi prime.c 进入main.c编辑主函数。 #include int n=100; prime(n); } 当编辑完上面的main.c程序时候,按下ESC,然后输入\退出编辑框。 ④使用gcc编译,查看运行结果。 [root @localhost prime]# gcc prime.c -o prime_hehui [root @localhost prime]# ./prime_hehui ⑤编写Makefile文件实现第④步功能,并使用make工具生成这个可执行文件。[root @localhost prime]# rm -r prime_hehui [root @localhost prime]# vi Makefile 进入Makefile编辑: prime:prime.o main.o gcc prime.o main.o -o prime prime.o:prime.c gcc -c prime.c main.o:main.c prime.h gcc -c main.c clean: 37 rm -fr prime_hehui *.o 当编辑完上面的Makefile的时候,按下ESC,然后输入\退出编辑框。 [root @localhost prime]# make [root @localhost prime]# ./prime_hehui