MakeFile $@,$^,$<

Makefile有三个非常有用的变量。分别是@,^,<代表的意义分别是:@--目标文件,^--所有的依赖文件,<--第一个依赖文件。
如果我们使用上面三个变量,那么我们可以简化我们的Makefile文件为:

这是简化后的Makefile

gcc -o $@ $^
main.o:main.c mytool1.h mytool2.h
gcc -c $<
mytool1.o:mytool1.c mytool1.h
gcc -c $<
mytool2.o:mytool2.c mytool2.h
gcc -c $<

经过简化后我们的Makefile是简单了一点,不过人们有时候还想简单一点。这里我们学习一个Makefile的缺省规则

gcc -c $<

这个规则表示所有的 .o文件都是依赖与相应的.c文件的。例如mytool.o依赖于mytool.c这样Makefile还可以变为:

这是再一次简化后的Makefile

main:main.o mytool1.o mytool2.o
gcc -o $@ $^
.c.o:
gcc -c $<

好了,我们的Makefile 也差不多了,如果想知道更多的关于Makefile规则可以查看相应的文档。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是 Makefile 呢? Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链...
    JackHCC阅读 13,650评论 0 2
  • 有了这个Makefile文件,不论我们什么时候修改了源程序当中的什么文件,我们只要执行make命令,我们的编译器都...
    lain355阅读 3,775评论 0 0
  • 1.源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实...
    KINGZ1993阅读 8,310评论 0 4
  • title: 2017-6-15makefiletags:makefile的书写和熟悉 示例 主要目的 是为了把一...
    宇文黎琴阅读 3,297评论 0 0
  • Makefile文件简介 Makefile文件定义了一系列的规则,来指定工程中的哪些文件需要编译,哪些文件需要先编...
    angel_贝贝阅读 3,244评论 0 0