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

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

  • 1.GNU Make 是什么
    • 1-2.现在VisualStudio都有社区版了,为什么还要使用make
  • 2.GNU Make 的简单用法
    • 2-1.Make 命令参数的简单介绍
      • 2-2-1.make -f 例子
      • 2-2-2.make -I 例子

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 
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

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

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 例子

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

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 参数
gnu make 手册 学习笔记 C语言 / C++ 构建工具 part.1 简介 简单用法_第3张图片

你可能感兴趣的:(学习笔记,GNU,Make,构建工具,C,C++)