MakeFile使用笔记
April 24, 2023
MakeFile的编译和连接
<p>对于大量的c语言文件一个很好的自动化工具,其实可以用到任何语言</p>
MakeFile的一般使用
使用规则
既然要用MakeFile,那就要知道它是怎么使用的;主要还是编译
&链接
,将大量的文件,通过直接或间接的方式来一键编译,就不必像gcc -g -o pro1.c pro2.c pro3.c... filename
如此这般麻烦的编译了。
写入Make的文件的规则:
<ol> <li>如果这个工程没有编译过,那么我们的所有c文件都要编译并被链接。</li> <li>如果这个工程之中的某几个c文件被修改,那么我们只编译被修改的c文件,并链接目标程序。</li> <li>如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的c文件,并链接目标程序。</li> </ol>
对makefile的书写规则:
target ... : prerequisites ...
command
...
...
<ol> <li><strong>target:</strong> 这个是的目标文件,也可以是一个执行文件,还可以是一个标签(label)。</li> <li><strong>prerequisites:</strong> 这个是一个依赖文件,是对<code>target</code>文件的输入。</li> <li><strong>command:</strong> 这个是对文件的命令具体操作。<code>eg:cc -o file.h</code></li> </ol>
简而言之,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。
make的使用技巧
变量的使用
在makefile里面也是可以使用变量的,但是这是不可变的(是不是有点矛盾),它更像是c语言里面的宏(#define)。
object = $(boo)
这样的好处是我们可以简化我们的make文件,是它不是这么的杂乱无章。
书写规则
最后更新于