美文网首页
make命令的Makefile文件初探

make命令的Makefile文件初探

作者: 和谐共处 | 来源:发表于2019-02-18 23:11 被阅读2次

    make 命令

    Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,
    就要重新构建的项目,都可以用Make构建,所有的构建规则都可以写在一个Makefile的文件中,
    Make命令依赖这个文件进行构建。Makefile文件也可以写为makefile,
    或者用命令行参数指定为其他文件名。

    指定规则文件构建

    $ make -f rules.txt
    # 或者
    $ make --file=rules.txt
    

    如果没有指定文件则默认执行Makefile文件。

    Makefile语法如下:

    <target> : <prerequisites>
    [tab]  <commands>
    
    • target:目标(一个名字)-比如把a文件拷贝到版本、打印变量
    • prerequisites:前置条件-比如拷贝操作需要源文件和目标文件、要打印的变量,多个条件之间以空格隔开
    • tab:设置完目标后换行要以tab键起行,然后开始写命令
    • commands:一系列的执行命令,多个命令之间用“;”隔开,也可以另起一行(以tab键起行)

    一个小例子

    将a.txt文件内容拷贝到b.txt文件(有时候可以不加后缀名)

    copy_a_to_b : a.txt b.txt
        cp a.txt b.txt
    

    打印变量

    name = cat
    print_name:
        echo $(name)
    

    构建多个target

    all是一个伪目标我的理解就是这个目标需要依赖其他目标的完成,可以显示指定的用“.PHONY”修饰如:
    <pre> .PHONY all : target1 target2</pre>

    all : copy_a_to_b remove_a
    
    #target1 将a.txt文件内容拷贝到b.txt文件
    copy_a_to_b : a.txt b.txt
        cp a.txt b.txt
    
    #target2 删除a.txt文件
    remove_a:
        rm -r a.txt
    

    参考文档

    http://www.gnu.org/software/make/manual/make.html
    http://blog.csdn.net/u012398613/article/details/50749767
    http://www.cnblogs.com/hnrainll/archive/2011/04/12/2014082.html

    相关文章

      网友评论

          本文标题:make命令的Makefile文件初探

          本文链接:https://www.haomeiwen.com/subject/uenenttx.html