MakeFile 扫盲

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

猜你喜欢

转载自blog.csdn.net/u013985241/article/details/86536089