Linux自动构建工具——make/makefile

目录

一、make/makefile是什么?

二、深入了解

1.基本命令


 

提示:以下是本篇文章正文内容,下面案例可供参考

一、make/makefile是什么?

        在Linux中make是一条指令,makefile是文件。make的核心功能就是读取一个或者多个名为makefile的文件,这些文件构成整个项目。是否会makefile,是一个人是否有能够完成大型工程项目能力的侧面体现。

二、深入了解

 

        touch makefile //创建一个makefile文件

        touch my_text.c 

        vim makefile //打开vim

        my_text:my_text.c        //依赖关系        
                gcc -o my_text my_text.c        //        依赖方法

        clean:

                re -f my_text        //代码前面必须是Tab不能用空格

        make // 它就会自动编译后面的代码

        ./my_text         //就会编译代码

        make clean         //        clean是独立存在的不需要依赖关系,它用于执行完文件后所进行的删除

 

       make的编译是跟时间有关,它会根据文件的新旧判断是否进行重新执行依赖关系,进行进一步的编译。

        make是先寻找makefile在makefile中自上到下寻找可执行文件,它会根据里面的依赖关系和依赖方法去寻找我们的可执行文件。有时候我们执行make之后 如果没有进行clean的删除那么它是有时候是不会再次编译。这是因为如果代码没有被改变,那就不需要在编译,因为再编译也没有用。那如果我们就像编译怎么办。touch my_text.c 之后make就可以继续编译。或者makefile里面含有clean,那么make clean 会删除编译过的文件,就可以再次make了。

        touch后跟没有创建的文件名是创建文件,如果跟已有的文件名是更新文件的时间,使这个文件时间是最新的那么,它就可以正常make了

        两个指令

// 在 Makefile 中,.PHONY 是一个特殊的目标,用于定义伪目标

.PHONY:clean //它在前面也可以一直make

.PHONY:my_text

       将 clean 定义为 .PHONY 可以确保即使没有 clean 文件存在,make 也会执行 clean 目标中定义的命令。如果你不声明一个目标为 .PHONY,make 会试图寻找一个与该目标同名的文件。如果没有找到该文件,make 将认为目标是最新的,因此不会执行与之关联的规则。通过将一个目标声明为 .PHONY,你可以告诉 make 不要试图查找与之对应的文件,而直接执行与之关联的命令。

 

        如果指令前面加上 @ 就不会在屏幕是显示这行指令了。

        $@代表 my_text.        $^代表 my_text.c 所以后面只写   $@与$^就不用写文件名了。这是一种特殊符合,可以节省一些写代码的时间。

 

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值