实验目标
-
在windows环境下通过虚拟机软件(比如Vmware、VirtualBox)安装Ubuntu 16.04/18.04 Desktop,并设置网络参数保证系统能上网;熟练掌握Ubuntu常用命令,并学习使用vi/vim、或nano、或gedit文本编辑软件。
-
Ubuntu系统一般采用 apt-get 命令进行某个软件的在线查找和安装,默认官方的软件源仓库位于国外,下载速度较慢。请修改系统参数,选择国内镜像软件源仓库,以提高软件安装速度。
-
在Ubuntu系统下用C语言编写一个简单的输出 hello word 的程序,并编译有、运行之;
-
请编写一个主程序文件 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 并运行。
- 在任务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,这次是一次新的尝试,也是一个试错的过程,但它也激发了我的学习兴趣,让我更加想深入学习这门技术。