其他分享
首页 > 其他分享> > 2019-2020-1 20175302_20175314_20175316 实验一 开发环境的熟悉***

2019-2020-1 20175302_20175314_20175316 实验一 开发环境的熟悉***

作者:互联网

2019-2020-1 20175302_20175314_20175316 《信息安全系统设计基础》实验一 开发环境的熟悉

一、实验内容

二、实验步骤

(一)交叉机编译环境

#include <stdio.h>
int main(){
    printf("HelloWorld!\n");
    printf("20175302_20175314_20175316\n");
    return 0;
}

用gcc编译hello.c
gcc -o linuxhello hello.c
用交叉编译器"arm-none-linux-gnuenbi-gcc"编译hello.c
/usr/local/toolchain/toolchain4.3.2/bin/arm-none-linux-gnuenbi-gcc hello.c -o armhello

(二)目标机宿主机联通

(三)目标机运行程序

(四)目标机模块分解

(五)清理工作

三、实验过程中遇到的问题和解决方案

下载安装最新Linux解压版ARM交叉编译工具

②将arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2拷贝至虚拟机/usr/local文件夹执行以下命令

cd /usr/local
tar -jxvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

③配置环境变量使其生效

sudo vim /etc/bash.bashrc

选择文件末行(64行),按键盘上的o键,在光标所在行下新增一行(65行)插入

export PATH=$PATH:/usr/local/arm-2014.05/bin/

最后执行

source /etc/bash.bashrc

④测试,输入

arm-none-linux-gnueabi-gcc -v1

如果出现: No such file or directory,则是因为64位Ubuntu与32位软件不相容,输入

sudo apt-get install lib32z1 lib32ncurses5 libbz2-1.0:i386 lib32stdc++6  12

重新输入

arm-none-linux-gnueabi-gcc -v

⑤编译,输入

arm-none-linux-gnueabi-gcc -static -o armhello hello.c

四、实验体会与总结

交叉编译:

宿主机与目标机

NFS(Network File system)

超级终端

file命令

-b:列出辨识结果时,不显示文件名称;
-c:详细显示指令执行过程,便于排错或分析程序执行的情形;
-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序每列一个文件名称辨识这些文件;
-L:直接显示符号连接所指向的文件类别;
-m<魔法数字文件>:指定魔法数字文件; 
-v:显示版本信息;
-z:解读压缩文件的内容。

五、参考资料

标签:gcc,20175302,宿主机,编译,2019,linux,2020,超级终端,arm
来源: https://www.cnblogs.com/SANFENs/p/11794030.html