嵌入式LINUX系统程序开发回顾


实验目标

  1. 在windows环境下通过虚拟机软件(比如Vmware、VirtualBox)安装Ubuntu 16.04/18.04 Desktop,并设置网络参数保证系统能上网;熟练掌握Ubuntu常用命令,并学习使用vi/vim、或nano、或gedit文本编辑软件。

  2. Ubuntu系统一般采用 apt-get 命令进行某个软件的在线查找和安装,默认官方的软件源仓库位于国外,下载速度较慢。请修改系统参数,选择国内镜像软件源仓库,以提高软件安装速度。

  3. 在Ubuntu系统下用C语言编写一个简单的输出 hello word 的程序,并编译有、运行之;

  4. 请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。

(1) 请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;

(2) 请在windows系统下用你熟悉的编译工具编译主程序main1.c 并运行。

  1. 在任务4基础上,在ubuntu系统下用Makefile方式编程主程序。

一、如何安装Ubuntu

笔者采取的是下载镜像安装Ubuntu,在镜像下载网站下载相关的镜像文件后解压会生成一个 Ubuntu18_ROS 目录。在这里插入图片描述
用VMware的File 导入 这个.vmdk 文件, 遇到对话框时,选择“ 也复制镜像文件”。打开虚拟机后即可获得镜像已经设置好的Ubuntu。
在这里插入图片描述

二、实验步骤

1.安装gcc

单击鼠标右键点击打开终端在这里插入图片描述
输入代码sudo apt-get build-dep gcc再输入用户密码后即可开始下载安装gcc。笔者这里已经是下载了gcc之后了。在这里插入图片描述

2.在gcc中编写程序

先是最简单的Hello world。编译结果如图所示:在这里插入图片描述然后是请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。
主程序如图所示:在这里插入图片描述
子程序如图所示:在这里插入图片描述
运行结果如图所示:
在这里插入图片描述
在windows系统下由vs编译主程序结果如下:
这里由于笔者改变了变量参数值,因此两者的输出结果不一致。
在这里插入图片描述最后是在ubuntu系统下用Makefile方式编程主程序,Makefile相当于一个项目管理工具,它的书写规则如下:
(1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。
(2)如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。
(3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。
代码如下

main: main1.o sub1.o
	gcc -o main main1.o sub1.o
clean:
	rm rf *.o main

编译结果如下:在这里插入图片描述


总结

这就是本次安装Linux虚拟机Ubuntu系统并且使用gcc来编程的安装以及学习过程,这次的编程实验让我学会了如何使用gcc,这其中也有很多问题和困难,但最后借助网络平台和请教其他同学来解决了这些问题,克服了一些困难。
例如,在主程序的编辑中对于b的变量符号int少打了一个t而导致了编译错误。在这里插入图片描述
又例如在运行主程序与子程序时将程序名中的1与/未分清楚而产生了错误。在这里插入图片描述
最后在一遍遍调试中不断发现问题,解决问题,让我可以更加熟练的掌握并使用Ubuntu,这次是一次新的尝试,也是一个试错的过程,但它也激发了我的学习兴趣,让我更加想深入学习这门技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值