Linux下的第一步——进度条(gcc&Makefile)

相信大家在初步学习C/C++的时候都写过“hello world”的代码。在学习了C/C++之后进入Linux系统的学习我们不用再从“hello world”这种入门级程序开始了,毕竟已经有了几年的小经验,但是重新开始在一个新的系统下编写代码,特别是对于Linux中庞杂的指令是需要一个熟悉与练习的过程的。进度条的小程序对于我们熟悉指令,练习VIM下代码的编辑以及gcc和Makefile等工具的使用都是很有帮助的。

VIM之前已经介绍过了,就不做过多赘述,今天利用这个小代码来看看gcc和Makefile是如何运用的。

首先,我们来看看gcc是个什么东西呢?我们已经熟悉了Windows下VS的编译器,同样的,gcc则是Linux下的编译器。我们写好的代码都是通过它来进行预处理、编译、汇编和链接而运行的。gcc是C语言的编译器,g++是C++的编译器,使用方法基本一致。可以通过以下的指令格式完成: gcc [选项] 要编译的文件 [选项] [目标⽂文件]

应用示例:  

gcc –E hello.c –o hello.i   选项“-E”进⾏行查看,该选项的作⽤用是让 gcc 在预处理结束后停⽌止编译过程;选项“-o”是指⽬目标⽂文件,“.i”⽂文件为已经过预处理的 C 原始程序。 

    gcc –S hello.i –o hello.s   使用“-S”选项来进⾏行查看,该选项只进行编译⽽而不进行汇编,生成汇编代码

gcc –c hello.s –o hello.o  汇编阶段是把编译阶段⽣生成的“.s”⽂文件转成⽬目标⽂文件,读者在此可使⽤用选项“- c”就可看到汇编代码已转化为“.o”的二进制⽬目标代码了。

Makefile是一个很重要的东西,是学习Linux必不可少的一个部分。一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 Makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。。Makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极⼤的提高了软件开发的效率。 make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。Makefile是如何来写的呢?先来看看我在进度条的程序中写的Makefile。

  

首先要写的是依赖关系,如同第一行所示,第二行便是依赖方法,切记要以Tab键开始。接下来就是以.PHONY开始伪目标文件,也就是说clean是伪目标文件。用make clean可以清楚以前的所有的目标文件,进行重新的编译了。

好了,现在来看看进度条的小程序是如何实现的。我们利用#来进行模拟进度的增长,用/\—|来模拟正在加载的那么圆圈,用百分比表示进度加载的多少。

用到了两个函数: 刷新函数--->fflush(stdout),休眠函数--->usleep(10000).

运行结果:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值