MakeFile 扫盲

最详细的教程:

https://blog.csdn.net/weixin_38391755/article/details/80380786

1、预处理: gcc -E project.c -o project.i     //生成预处理文件 project.i 宏展开 包含展开

2、编译:   gcc -S project.i -o project.S     //生成汇编文件 project.S  //高级语言转成低级语言

3、汇编:   gcc -c project.S -o project.o     //生成机器语言 project.o  生成未地址定位的机器码 

4、链接:   gcc project.o  -o project         //生成可运行程序project   加载库文件

 

编译是对.c文件进行操作的, 会自动的去找头文件进行包含。 其中的include会在链接的时候使用。

根据源文件自动产生依赖文件?

 

$(addprefix src/,foo bar) 返回的结果是“src/foo src/bar”

https://blog.csdn.net/u013216061/article/details/73745717

 

vpath pattern directories 用于指定搜索目录

https://blog.csdn.net/mcgrady_tracy/article/details/27240139

 

自动生成依赖关系:https://blog.csdn.net/sinat_29830917/article/details/56479186

 

@ Makefile中的@通常,make会把其要执行的命令行在命令执行前输出到屏幕上。当我们用“@”字符在命令行前,那么,这个命令将不被make显示出来

 

$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。

https://blog.csdn.net/YEYUANGEN/article/details/3689850

 

跟我一起写Makefile

https://seisman.github.io/how-to-write-makefile/introduction.html

 

多文件目录下makefile文件递归执行编译所有C文件

https://www.cnblogs.com/fengliu-/p/10154643.html

MAKEFILE 冒号:替换文件后缀的方法

https://blog.csdn.net/paulkg12/article/details/88225930

makefile 中 $@ $^ %< 使用

https://www.cnblogs.com/baiduboy/p/6849587.html

$^是所有依赖的文件,$@是目标文件

-fpie pie

https://www.dazhuanlan.com/2019/09/30/5d9146a2ebd07/

Makefile的$@、$%、$?、$^ 、$+、$*自动化变量说明

https://blog.csdn.net/qu1993/article/details/88871799

Makefile中@、@、<、$^的含义

https://www.cnblogs.com/fantet/p/4425063.html

Makefile静态模式 $(OBJS): $(OBJ_ROOT)/%.o :$(SRC_ROOT)/%.c

https://blog.csdn.net/yyyljw/article/details/101371850

makefile '@' '$' '$$' '-' '-n ' 使用小结

https://blog.csdn.net/u012989012/article/details/80572043

从简单实例开始,学会写Makefile(一)

https://blog.csdn.net/wcl199274/article/details/39140459

你可能感兴趣的:(Make,file,扫盲,通俗,总结)