linux常用的工程管理器,【Linux】工程管理器Make

Make是工程管理器,是一种可以提高编译效率的可以实现自动编译的工程管理器。

Make实现自动编译主要体现在以下两点:

按照Makefile的编译规则

通过检查时间戳检查文件是否被修改,没修改则不会被编译

Makefile文件是脚本文件,需要使用脚本语言。脚本一般用来实现批处理,脚本语言一般做测试用。

Makefile三元素:目标,依赖,命令。

格式如下:

target file : dependency file

command

其中,需要在command命令前加一个Tab键。

例如,编写一个简单的hello.c程序:

#include

int main()

{

printf("Hello world!\n");

return 0;

}

用“vim Makefile”命令进入写Makefile文件,Makefile文件代码如下:

hello : hello.o

gcc hello.o -o hello

hello.o : hello.c

gcc -c hello.c

第一次编译时,由于还没有hello.o文件,所以先执行“gcc -c hello.c”生成目标文件hello.o,然后再执行“gcc hello.o -o hello”,生成可执行文件hello。如下图:

06f39bf189eabcf8c2d97c77fc1db9de.png

若已经有了hello.o文件,则直接执行“gcc hello.o -o hello”,生成hello文件。如下图:

055f450cda7cdc862cde47203d4661f2.png

也可以直接使用如下代码直接生成可执行文件hello:

hello : hello.c

gcc hello.c -o hello

07864ffc9cef8389bf418d5fff9cef29.png

如果在编译了之后没有再修改,则再次输入“make”命令不会被编译,即make可以通过检查时间戳检查文件是否被修改,没修改则不会被编译。如下:

7e5aa339819c4df54d108fad4577505e.png

在上述过程中,可以看到在写Makefile文件时,可以用两种代码,一种直接生成可执行文件,另一种是先生成目标文件,然后再生成可执行文件。一般情况下我们选择先生成目标文件再生成可执行文件。

为什么要先生成hello.o文件,再生成可执行文件hello?

原因如下:

若选择直接生成可执行文件,那么如果有多个源代码需要编译,第一次编译时需要将所有的文件从头编译,消耗大量时间,若此时修改其中一个源代码,再次编译时会同第一次编译时一样将所有文件从头编译,浪费大量时间;如果选择先生成hello.o文件的话,若修改其中一个源代码,再次编译时只需要从头编译修改的文件,其他文件可以迅速生成可执行文件,即省去了其他未被修改文件的预处理和编译过程,直接链接。即使用此种方法可以加快编译速度,提高工作效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值