Linux工具之make/Makefile

make/Makefile

makefile实际上是一个自动化构建项目的工具,他是对大型项目的编译工作的集成化处理,他可以处理文件的编译顺序,是否编译,以及对于代码的更复杂的操作

make是一个命令工具,大多数的ide都有这个命令,比如说Delphi的make等

make是一条命令,而makefile是一个文件,我们需要搭配使用完成项目的自动化构建

这里我们演示一下,具体的使用

#include<stdio.h>
int main()
{
   
    printf("hello makefile\n");
    return 0;
}

然后我们创建一个makefile文件

内容如下

test: test.c
	gcc -o test test.c
	
.PHONY:clean
clean:
     rm -f *.o test 

我们依次来说说这几个命令的意思,第一个test就是会生成的目标的名称,test.c是指的是依赖

目标指的是要编译的目标,也可以是一个动作,依赖可以理解为是项目的源文件

第二行指的是目标下要执行的具体命令,可以没有,也可以有很多条,需要注意的是,如果有很多条,就只写一行

这里的phony意味着伪目标,他的特性就是总是被可执行的

当我们调用这个make命令时,只使用make时,会自动调用第一个目标,也可以把项目名称作为命令之一,调用clean时,需要写clean了

例如

make
make test
make clean

当然如果clean是第一条就不用了

为什么我们说伪目标总是可执行的呢,因为如果编译过了一次源文件,再次编译时会自动检查,如果源文件没有被修改的话,则不会被再次编译,这样做有利于在大量工程的情况下节省系统的开销

感谢各位的支持,如果你发现文章中有任何不严谨或者需要补充的部分,欢迎在评论区指出

相关推荐

  1. Linux工具vi/vim

    2023-12-30 07:46:03       71 阅读
  2. Linux工具make/Makefile

    2023-12-30 07:46:03       57 阅读
  3. Linuxshell文本搜索工具grep

    2023-12-30 07:46:03       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-30 07:46:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-30 07:46:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-30 07:46:03       87 阅读
  4. Python语言-面向对象

    2023-12-30 07:46:03       96 阅读

热门阅读

  1. electron-builder 打包exe后白屏

    2023-12-30 07:46:03       52 阅读
  2. 【12.29】转行小白历险记-刷算法05

    2023-12-30 07:46:03       55 阅读
  3. 谈谈 Redis 除了作缓存之外还能干什么

    2023-12-30 07:46:03       52 阅读
  4. JWT+Redis 实现接口 Token 校验

    2023-12-30 07:46:03       53 阅读
  5. 知识笔记(六十一)———Vue生命周期

    2023-12-30 07:46:03       65 阅读
  6. docker启动mysql并映射数据目录、含备份脚本

    2023-12-30 07:46:03       60 阅读
  7. DjangoRestFramework概括

    2023-12-30 07:46:03       62 阅读