记录Makefile的第一次学习
1.Makefile的功能和原理
Makefile是一种用于自动化构建和管理软件项目的工具,由make命令执行。Makefile文件描述了整个工程所有文件的编译顺序、编译规则,Makefile有自己的书写格式、关键字、函数。
Makefile的产生原因是为了解决编译过程中的依赖关系问题,使得在开发过程中能够轻松地进行代码的编译、链接和部署。在链接过程中,如果我们链接的目标文件过多,那么挨个指出目标文件名称,就很不方便,所以,使用makefile可以批量,流程的指出连接


2.Linux平台的Makefile用法
在Linux开发中,Makefile文件给我们带来很多的便利。在Linux系统下并不会像Windows那么多开发工具,工程源文件的编写往往是使用一个简单的编辑器(VIM),然后通过Makefile文件进行自动化编译。
make命令是读取当前目录下的文件名为makefile的文件,然后按照makefile的文件内容将其项目一次性编译。
当我们输入make命令的时候,make命令会在当前目录下找寻名字是Makefile或者makefile的文件。
也可以使用-f参数指定目标文件。
make -f Makefile.typename
3.Windows平台的Makefile用法
在Windows平台可以使用Makefile批量链接编译和gcc,g++等编译器的帮助下,不需要下载vs等工具进行编程。
1)安装对应语言的编译器
以c语言为例,gcc编译器下载,TDM-GCC,打开根据自己电脑的类型选择合适的程序,
gcc的安装与下载可以找教程。注意安装路径不要有中文
2)检查编译器安装和环境变量是否成功设置
cmd窗口输入gcc -v
输入mingw32-make -v
4.Makefile的基本语法
1)基本格式
目标文件:依赖文件
【tab】命令
命令都需要以tab开始,且不能用四个空格替代。
hello:hello.o
g++ hello.o -o hello
hello.o:hello.S
g++ -c hello.S -o hello.o
hello.S:hello.i
g++ -S hello.i -o hello.S
hello.i:hello.cpp
g++ -E hello.cpp -o hello.i
2)赋值
= 替换
+= 追加
:= 恒等于
3)通配符
%.o 任意以.o结尾的文件
*.o 所有以.o结尾的文件
4)特殊
$^ 所有依赖文件
$@ 所有目标文件
$< 所有依赖文件的第一个文件
5).PHONY次目标(附加处理)
固定以.PHONY:开头
clear为自己取的功能名称。
大部分基于shell的语法,用于cmd时需要按照cmd内置的功能进行修改。
.PHONY:
clear:
del hello.o hello.S hello.i
6)windows:将文件保存为Makefile,无后缀
进入文件存放位置,注意将需要的依赖文件放在一起
文件路径一栏处输入cmd,进入cmd
输入mingw32_make 即可。

6)参考资料
最实用的Makefile教程 真的很简单(搞不明白网上的教程写那么复杂干嘛)-CSDN博客
ps:一些注意事项
1.注意编写语言与编译器名称对应。
仅供本人学习使用,绝无抄袭之意。