在Ubuntu中完成Vim的安装以及编译C语言作业
1.在windows环境下通过虚拟机软件(本文中采用Vmware,或者可以使用VirtualBox)安装Ubuntu 16.04/18.04 Desktop(本文中采用20.04版本),并设置网络参数保证系统能上网;并使用vim编辑器.
2.首先安装Vim工具(文中已经安装成功),在安装过程中可能会遇到Ubuntu系统提示进程锁的问题,意思就是有另一个进程占用了apt-get,因为Ubuntu锁的访问机制是互斥的,即同一时间只能允许一个进程占用,只需要将那个占用的进程强制删除掉就行了。
所以输入如下两条命令 就可以解决问题
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
随后输入命令
sudo apt install vim
三行命令既可以成功安装vim
- 使用Vim创建第一个程序main.c
在linux命令行中输入以下代码
vim main.c
既可以成功创建一个名为main.c的文件夹(如果要完成编译等过程,需要提前安装gcc编译器,有关于gcc的安装放在文章末尾)
让我们来试运行且输出一下最熟悉的Hello world吧。

使用vim创建了一个名为helloworld.C的文件

输入相关的代码并保存退出

1 //分步骤生成编译c文件 2 gcc -c helloworld.c //生成helloworld.o文件 3 gcc -o you_want_what_name helloworld.o //输入任意你想要的的名字去命名可执行的程序 4 ./you_want_what_name
- (一)编写一个主程序文件 main.c 和一个子程序文件 sub1.c,程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。



以上分别为main.c sub1.c和sub1.h的三个程序代码
接下来对main.c进行运行

成功跑出了想要的结果。
- (二)在windows系统下使用VS2019进行编写

在新建项目的头文件夹中新建.h文件,以及输入如图所示的内容。记得更改头文件名为sub1.h!!!
而后在源文件中创建源文件,代码内容如下图所示:
运行结果:
- (三)在linux环境下使用Makefile
Q:何为Makefile?
A:makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
//Makefile样例代码如下 <target> : <prerequisites> [tab] <commands>
上面第一行冒号前面的部分,叫做"目标"(target),冒号后面的部分叫做"前置条件"(prerequisites);第二行必须由一个tab键起首,后面跟着"命令"(commands)。
"目标"是必需的,不可省略;"前置条件"和"命令"都是可选的,但是两者之中必须至少存在一个
编写Makefile内容如下:

make命令执行产生中间文件,.o文件为Object文件 使用makefile完成程序的编译链接过程
随后 可以使用make clean命令删除编译产生的中间文件
- (四)心得体会
学习Linux操作系统有一段时间了,重温Linux系统有一定的难度,文中重温了使用Linux操作的全过程以及遇到的一些问题,第一次写博客感受到了写博客的难度已经完成了相应工作量之后的快乐,以后会能使用博客尽量使用博客来记录每一次的学习心得,这些都是非常难得的心得体会。我学会使用了GCC编译器以及Makefile这种windows下接触不到的内容,感觉十分的有意思,会在接下来的学习过程中更加深入的去学习和掌握linux操作系统。Makefile让我们从更高的维度去观察编译链接的过程,是以前在windows操作系统下从未体会过得奇妙体验。 - (五)参考文章
https://www.cnblogs.com/pengmn/p/14049701.html
https://blog.csdn.net/haoel/article/details/2886/
浙公网安备 33010602011771号