虚拟机软件 Vmware
Ubuntu 18.04
打开虚拟机登陆后输入以下两条命令便可成功安装
vim安装命令 sudo apt-get install vim
gcc安装命令 sudo apt-get install gcc
vi是老式的字处理器。vim是vi发展出来的一个文本编辑器,代码补完、编译及错误跳转等方便编程的功能丰富。
vi编辑器是所有Unix及Linux系统下标准的编辑器,它就相当于Windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器,是我们使用Linux系统不能缺少的工具。由于对Unix及Linux系统任何版本,vi编辑器是完全相同的,所以掌握它意义重大。
其中vim中存在三种模式(大众的认知):命令模式、编辑模式(输入模式)、末行模式(尾行模式)
Vim三个基本模式之间的切换
(1)Normal命令模式<-----> Insert输入模式
1.用Vim打开文件,默认为Normal命令模式。此时按下键盘i、a、o、I健即可进入Insert输入模式。在编辑模式中,按Esc就可返回到Normal命令模式。如若不确定是否进入了Normal模式,可以多次按下Esc键。
编辑命令 | 作用 | 常用命令 | 作用 |
---|---|---|---|
i |
在光标所在字符前开始输入文字 | x |
删除当前光标所处字符 |
a |
在光标所在字符后开始输入文字 | : |
切换到末行模式,在最底一行输入命令 |
o |
在光标所在行下开一新行来输入文字 | ESC |
退出输入模式,切换到命令模式 |
I |
在行首开始输入文字 |
(2)Normal命令模式<----->Visual末行模式
在Normal命令模式下,按键盘v键进入Visual模式,左下角会有VISUAL字样。在Visual末行模式下,按下键盘上的Esc键回到Normal命令模式。
可输入命令 | 作用 |
---|---|
q |
退出程序 |
w |
保存文件 |
:wq |
保存并退出(退出后自动进入Normal命令模式) |
:q! |
强制退出不保存 |
:wq! |
强制保存并退出 |
Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件,而gcc则通过后缀来区别输入文件的类别。
gcc部分约定规则
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C或.cc或.cxx为后缀的文件,是C++源代码文件;
.h为后缀的文件,是程序所包含的头文件;
.i为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.m为后缀的文件,是Objective-C源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。
gcc编译过程
编译阶段 | 编译命令 | 作用 |
---|---|---|
预处理阶段 | gcc -E hello.c -o hello.i |
编译器将源代码中包含头文件编译进来 |
编译阶段 | gcc -S hello.i -o hello.s |
检查代码规范性并翻译成汇编语言 |
汇编阶段 | gcc -c hello.s -o hello.o |
将.s文件转换为目标文件 |
链接阶段 | gcc hello.o -o hello |
将目标文件转换为可执行文件 |
(1)建立程序
首先输入命令 vim hello.c
以此建立名为hello的工程,而后进入vim编辑器,使用命令i
进入输入模式,编写代码,具体代码如下:
#include
int main()
{
printf("hello world!");
return 0;
}
(2)输入命令gcc hello.c -o hello
再输入./hello
即可完成hello world的编译得到下图所示
编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。
(1)首先创建sub1作为头文件,包含算术运算函数x2x
具体代码如下:
#include
float x2x(int a, int b)
{
float z;
z = a * b;
return z;
}
(2)再创建主程序编写main.c文件,对函数进行调用并输出结果
具体代码如下:
#include
#include"sub1.h"
using namespace std;
int main()
{
int x, y;
x = 3; y = 6;
float k;
k = x2x(x, y);
printf("%f", k);
return 0;
}
题目要求与上文Windows系统下要求一致,故不再累述。
(1)首先创建主程序文件main1.c和子程序文件sub1.c,进入vim模式输入程序,方式与上文一致。
创建命令为touch main1.c
touch sub1.c
main1.c
#include
using namespace std;
int main()
{
int x, y;
x = 3; y = 6;
float k;
k = x2x(x, y);
printf("%f", k);
return 0;
}
sub1.c
#include
float x2x(int a, int b)
{
float z;
z = a * b;
return z;
}
(2)输入命令gcc main1.c sub1.c -o test
生成一个test文件,里面包含了main1.c和sub1.c
(3)输入命令运行程序./test
make命令执行时,需要一个 Makefile文件,以告诉make命令需要怎么样的去编译和链接程序(makefile文件自己新建就行,名字最好用makefile)。
只要我们的Makefile写得够好,所有的这一切,我们只用一个make命令就可以完成,make命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序。这就是Makefile的优势所在。
Makefile安装
输入命令sudo apt-get install make
即可完成安装
Makefile命令
target ... : prerequisites ...
command
Makefile规则
(1)我们首先需要创建 makefile 文件
具体命令如下:touch makefile
(2)编辑makefile文件,使用vim进行编辑
命令如下:vim makefile
(4)最后我们只需要输入命令make
运行程序,再输入程序名./main1
进行运行即可
本文先简述了vim和gcc,并通过基本的hello world程序加深对其的基础了解;而后我们分别在Windows系统下,Ubuntu系统,以及使用Makefile完成了编程要求,以上便是本文主要内容。
1.https://blog.csdn.net/qq_46467126/article/details/120279485
2.https://blog.csdn.net/qq_45237293/article/details/108741893
3.参考书目:makefile经典简明教程