您的位置:首页 > 编程语言 > C语言/C++

gnu make 手册 学习笔记 C语言 / C++ 构建工具 part.1 简介 简单用法

2020-03-05 13:56 1176 查看

GNU Make manual 学习笔记 C语言 / c++ 构建工具

  • 2.GNU Make 的简单用法
  • 1.GNU Make 是什么

    GNU Make是一个开源组织的一个项目,可以简单理解为,一个自动化构建的工具。

    常见于C/C++的项目构建。

    官网的地址 https://www.gnu.org/software/make/
    手册地址 https://www.gnu.org/software/make/manual/

    1-2.现在VisualStudio都有社区版了,为什么还要使用make

    1. Linux/Unix 能直接使用Visual Studio ?
    2. 在github上的一些项目会使用 make , autotools , cmake 或者类 make的工具进行构建,如果想要debug首先需要编译过了。
    3. 如果开发的环境是windows ,然后项目想在 x_86 Linux 或者 arm 结构 Linux ,那么自少得会一种构建工具,仅仅依赖 IDE很捉急。

    2.GNU Make 的简单用法

    源文件 HelloWorld.c

    #include <stdio.h>
    int main(void)
    {
    printf("hello world.");
    }
    1. Makefile文件
    .PHONY : clean
    
    compile: HelloWorld.c
    gcc  HelloWorld.c  -o  HelloWorld
    clean:
    rm -rf *.exe *.o
    1. 使用命令,编译
    make  target     在使用make的时候不指定target,会使用默认的,就是写在文件的第一个rule的target

    2-1.Make 命令参数的简单介绍

    make -f File, --file=File, --makefil=File                        如果配置文件不是Makefile,makefile,GNUmakefile的一种,可以指定文件名,不在同一个目录,需要变量配置
    make -I Directory , --include-dir=Directory                      指定include的Makefile的路径
    make -i,--ignore-erors                                           忽略异常
    make -t ,--touch                                                 仅仅修改target对应文件的修改时间,没有真正重新编译
    make -p, --print-data-base                                       打印make缓存的变量,automatic,default,makefile,environment和Pattern Rules

    2-2-1.make -f 例子

    2-2-2.make -I 例子

    Makefile

    include nestFile                      #包含一个makefile 但是这个makefile的名字是nestFile
    
    .PHONY : all   clean   nestFile       #定义伪目标
    
    all: compile nestFile
    
    compile: HelloWorld.c
    gcc  HelloWorld.c  -o  HelloWorld
    clean:
    rm -rf *.exe *.o

    /otherDir/nestFile

    nestFile:
    @echo In the other Makefile      #这里就是打印一句话

    配置文件中使用到include的时候,就需要使用 -I 参数

    • 点赞
    • 收藏
    • 分享
    • 文章举报
    jimmy_lee-0609 发布了1 篇原创文章 · 获赞 2 · 访问量 249 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: 
    相关文章推荐