Ubuntu下C 编程入门
我们在Windows下使用C语言开发的时候,一般都会有支持Windows的开发工具,比如我们学习51单片机或者STM32,所使用的的Keil开发软件。此类开发工具一般都会集编辑、编译于一体,我们只需要编辑好代码,电机开发工具的编译按钮,就可以自动为我们编译出可执行的二进制文件了。Ubuntu下的C语言开发与Windows下的C语言开发是不一样的,并没有图形界面的开发工具,而且编辑和编译是分开的。我们需要使用文本编辑软件先编写代码,然后使用编译工具(GCC)来编译,最终生成可执行的二进制文件。如果我们的工程中有多个源文件,在编译的时候我们通常会通过Makefile文件来管理整个工程的源文件。本章我们来学习如何在Ubuntu下进行C语言程序的编辑,GCC编译,Makefile文件的使用。通过本章学习我们可以掌握Linux下的C语言开发基本方法,为后面的学习做好准备。
按照框架学习法的总领思想,我们逐一击破!
1. Linux下编写递一个C 程序
本章节开始的部分我们介绍了Ubuntu下C程序开发分成两部分:编辑和编译。Ubuntu下有很多种文本编辑的工具,如vim、Gedit、Emacs,这里我们使用前面章节介绍的vim文本编辑工具来编辑C程序。相信大家在学习C语言的时候都是从“Hello World”这个程序开始的吧,下面我们通过这个程序,来学习下Linux下C程序开发的流程。
1.1. 代码编写
首先我们在用户根目录下建立文件夹“work”,用于保存所有C语言的程序,运行结果如图 1.1.1所示:
然后进入创建的文件夹work,为了方便管理,我们每个例程都创建单独的文件夹,首先我们创建文件夹“hello_world”来保存我们的递一个C程序,如图 1.1.2所示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/267fa0cec04fd4a1707972efc35c97f6.png#pic_center)
然后进入上图中的hello_world文件夹,使用vi命令新建文件“main.c”,然后在里面输入下面的代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello World!\n");
return 0;
}
编写完以后保存并退出vim编辑器,然后可以使用cat命令查看代码是否保存成功,如图 1.1.3所示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3ba72bdd26bd757e56e18ddac5873182.png#pic_center)
通过上图可以看到代码已经编辑完成了。
1.2. 代码编译
Ubuntu下使用gcc编译器来编译C程序,我们在安装Ubuntu系统的时候,gcc编译器morning安装好了,我们可以在终端输入“gcc -v”来查看下gcc的版本,如图 1.2.1所示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ca72d650f5834384f5fa5530ae1d786b.png#pic_center)
通过上图可以看到gcc的版本信息,说明我们的Ubuntu上已经安装了gcc编译器了,下面我们来看看怎么通过gcc编译我们的递一个C程序,我们在终端输入“gcc main.c -o main”,然后回车,会生成main文件,如图 1.2.2所示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/71330a5b8ff9501732698c8dd08cfac6.png#pic_center)
在上面的“gcc main.c -o main”这个命令里面“-o“用来指定编译生成的文件名字,我们指定的是main,所以在图3.1.2.2中可以看到生成了文件“main”,如果我们想生成其它的文件名字,我们只需要修改“-o”后面的main(修改成您希望生成的文件名字)。经过前面的步骤已经生成了可执行文件main,现在我们演示下在终端如何运行一个可行性的程序,我们直接在终端当前目录下(可执行文件所在的目录下)输入“./main”,然后回车,就可以运行可执行文件main了,运行结果如图 1.2.3所示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3227ba2a09af446dd92f359de53e22f8.png#pic_center)
在上图中运行的命令“./main”,其中的“./”代表当前目录下,我们可以看到在终端打印出了Hello World!。至此,Linux下的C语言编辑和编译的一整套流程我们就介绍完了。
![加粗样式](https://i-blog.csdnimg.cn/blog_migrate/706ca1a15c7de56eae34695202681f3c.png#pic_center)
**