make使用总结(1)-make介绍
参考资料如下:
- Make官网文档: http://www.gnu.org/software/make/manual/make.html
- make学习参考: https://blog.csdn.net/oxuzhenyi/article/details/77922773
在学习make
之前首先需要了解如下知识:
gcc
:编译工具链。用于将我们的源程序编译成最后可执行的二进制文件。shell
命令:我们在使用make时会用到一些常见的shell命令。
什么是make
我们在使用STM32等MCU时,一般直接使用集成开发环境KEIL等工具(IDE)来管理项目。这些IDE会帮助我们组织各个文件以及在需要的时候进行程序编译、链接。make也是用来组织工程文件,完成程序的编译和链接等工作。可以简单的理解为IDE在底层封装了make相关的工作,以实现更简单的程序开发环境。但这种封装也损失了一部分make的灵活性。因此,在一个庞大的项目或工程中(如工程需要高度可裁剪),依然会使用make等工具来组织工程文件,完成程序的编译和链接等工作。
make
使用Makefile
文件来描述工程中文件的组织关系以及gcc编译时的依赖关系(用于优化gcc编译时间)。因此我们需要为工程项目编写一个或多个Makefile
文件。一般在项目工程的根目录下会有一个总的Makefile
文件。当我们在项目工程的根目录下执行make命令时,make会自动扫描当前目录下的Makefile
文件,然后进行解析,最后生成我们期望的结果。
make
在工程项目中的主要作用如下:
- 组织工程中的各种文件。
- 根据自己的规则自动的进行gcc编译。
make命令
我们一般会在项目的根目录下执行make命令来构建项目。在使用make命令时,下列选项比较常用。
-f
:将指定的文件作为makefile执行。-i
:让make忽略执行命令时遇到所有的错误。但忽略不了依赖项中的错误。-k
:选项让其忽略依赖项错误并继续执行-jN
:N为一个数字,表示要执行的线程数-w
:打印make进入和离开目录的信息。-I
:指定include指示符的查找路径。
总结
make就是一个构建工具,用于工程项目的构建。
关于技术交流
此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。