make使用总结
theboynoName
我不是码农,是有情怀的画家。
展开
-
中小型项目工程的makefile模板及例程
# author:theboynoName# 一个适用于中小型项目工程的makefile模板# 1. 工程支持多个目录# 2. 编译产生的文件会存放到OBJPATH所在的目录# 3. 修改头文件时也会自动更新目标。# Project SettingsTOP_DIR := .BIN := mainOBJPATH := $(TOP_DIR)/buildCSRCS =INCLUDE =VPATH :=CC := gccWARNINGS := -Werror -WallLDFLAGS原创 2021-07-11 21:13:00 · 372 阅读 · 0 评论 -
make使用总结(9)-Makefile编写
make使用总结(9)-Makefile编写但是,很多项目工程为了裁剪简单,一般都在每个源文件的文件夹下编写一个用来获取源文件的文件,一般命名为make.defs.如下面的这个工程。工程源码链接:工程目录:顶层的Makefile文件源码:# 文件说明# 适用于中小型项目。# 源文件的获取由每个文件夹下的make.defs获取BIN := mainOBJPATH := objSRCS :=SRCS += main.cTOP_DIR:= .CFLAGS := -O3 -g0 -I原创 2020-12-23 19:09:22 · 1466 阅读 · 0 评论 -
make使用总结(8)-Makefile编写
make使用总结(8)-Makefile编写中小型项目Makefile模板相比较前两次编写的Makefile,这节的Makefile将表现的更加出色。具体特点如下生成的.d,.o等中间文件存放在$(OBJPATH)目录下.如 OBJPATH := obj 表明存放在obj目录下.c文件可以存放在$(SRCPATH)指定的多个目录下。如 SRCPATH := ./ src1/表明源文件可以存放在当前目录、src1目录。存放在$(SRCPATH)目录下的源文件会被自动添加到项目gcc编译时需要的头原创 2020-12-22 15:39:48 · 352 阅读 · 0 评论 -
make使用总结(7)-Makefile编写
make使用总结(6)-Makefile编写上篇文章编写了最简单的Makefile文件。但它不够完美。首先当.h文件发生变化时,需要先make clean,再make.这种方式在编译大型项目时会变得很慢,因为它需要先删除之前生成的所有中间文件,再重新创建中间文件。而理论上make只需要重新编译此.h文件涉及到的相关源文件。然后链接程序就可以了。这节就是要解决这个问题。优化make时的头文件依赖问题例程源码链接:<>.工程目录如下:其中,文件common.c和main.c中引用了com原创 2020-12-22 13:11:20 · 269 阅读 · 0 评论 -
make使用总结(6)-Makefile编写
make使用总结(6)-Makefile编写有了前面的知识基础我们就可以编写Makefile文件了。首先编写一个最简单的Makefile文件。文件需要遵循如下要求:所有的文件都在同级目录下。包括.h文件,.c文件,以及生成的.o文件。源文件需要手动的添加到Makefile文件中。当.h文件发生变化时,需要先make clean,再make.例程源码链接:<>.工程目录如下:Makefile文件如下:# 文件说明# 所有的文件都在同级目录下。包括`.h`文件,`.c`文件原创 2020-12-22 11:55:46 · 214 阅读 · 0 评论 -
make使用总结(5)-Makefile语法
make使用总结(5)-Makefile语法通配符为了方便字符串的处理,make也支持一些通配符。在规则中通配符会被自动展开,但在变量定义和函数引用时,通配符将会失效。此时如果需要使用通配符就要使用wildcard函数。详见此函数。*:匹配任意长度的任意字符.(注意:匹配文件名,无法匹配 makefile 文件中的规则等字段)?:匹配单个任意字符。[...]:匹配括号中指定的任意一个字符。~:代表当前用户目录。使用例程如下,变量定义在变量定义时使用通配符*.c获取当前目录下所有后缀名为.c原创 2020-12-21 16:44:31 · 406 阅读 · 0 评论 -
make使用总结(4)-Makefile语法
make使用总结(4)-Makefile语法函数为了方便Makefile的编写,make已经为我们定义了多个常用函数。make函数的调用格式与变量引用相似,基本格式如下:$(function arguments) 或 ${function arguments}.arguments为函数的参数,参数以,进行分割。函数处理参数时,若参数中存在其它变量或函数的引用,则先展开参数再进行函数处理,展开顺序与参数的先后顺序一致。函数中的参数不能直接出现逗号和空格,前导空格会被忽略,若需要使用逗号和空格则需要将它们赋原创 2020-12-21 16:25:54 · 469 阅读 · 0 评论 -
make使用总结(3)-Makefile语法
make使用总结(3)-Makefile语法变量Makefile中的变量主要是用来保存、处理字符串。变量名区分大小写.引用变量时使用$(variableName)的格式,如$(BIN).由于$有特殊含义,所以当遇到真实的$时用$$来表示。可以使用$$$$打印当前进程id。Makefile中变量的使用如下BIN := mainSRCPATH = src1SRCPATH += src2OBJPATH ?= objSRCS := $(wildcard *.c);变量赋值可以分为两种:立原创 2020-12-21 15:36:36 · 341 阅读 · 0 评论 -
make使用总结(2)-Makefile介绍
make使用总结(2)-Makefile介绍之前已经提到了,make使用Makefile文件来描述工程中文件的组织关系以及gcc编译时的依赖关系。因此我们需要为工程项目编写一个或多个Makefile文件。下面就介绍Makefile相关的语法。Makefile主要由显式规则、隐晦规则、变量定义、指示命令和注释五个部分组成。下面将一一介绍。注释makefile使用#作为注释符号。显式规则与隐式规则规则是make的核心。make规则的格式如下:[目标] : [依赖][tab键] [shell命令]原创 2020-12-21 15:32:14 · 254 阅读 · 0 评论 -
make使用总结(1)-make介绍
make使用总结(1)-make介绍参考资料如下:Make官网文档: http://www.gnu.org/software/make/manual/make.htmlmake学习参考: https://blog.csdn.net/oxuzhenyi/article/details/77922773在学习make之前首先需要了解如下知识:gcc:编译工具链。用于将我们的源程序编译成最后可执行的二进制文件。shell命令:我们在使用make时会用到一些常见的shell命令。什么是make原创 2020-12-21 12:40:47 · 721 阅读 · 0 评论