makefile
食梦少年
仰望大牛,脚踏实地
展开
-
makefile实战(一):函数和变量的综合应用
目前有简单的func.c和main.c两个源文件,需要编译成hello_makefile可执行程序1.自动生成target文件夹存放可执行文集那2.自动生产objs文件夹存放编译生成的目标文件3.考虑代码的扩展性单步实现原理首先我们要知道文件的编译过程.用命令行如何实现这个过程?mkdir objs targetgcc -o objs/main.o -c main.cgcc -o...原创 2019-07-29 15:44:34 · 318 阅读 · 0 评论 -
makefile学习(十):在makefile里面如何嵌入shell?
有些处理使用shell语言处理比较方便?那么makefile中可以嵌入shell语言吗?例如我们需要循环读取文件夹里面的文件名在shell中MODULES = "common modules main"for dir in $MODULES;do echo $dirdone在make中就难以实现了,那么我们可以在makefile中调用shell吗?如何调用?MODULES :...原创 2019-08-06 17:06:35 · 1415 阅读 · 0 评论 -
makefile学习(八):makefile中函数的概念
makefile中函数的概念自定义函数函数是一个编程语言的必备功能.那么在makefile中,我们如何自定义函数呢?在makefile中,通过define关键字进行自定义函数. 如下:define func1 @echo "func1"endef问题1:如何调用函数?define func1 @echo "func1"endefall: $(call func1...原创 2019-07-26 15:47:51 · 597 阅读 · 0 评论 -
makefile学习(九):makefile的隐式规则
makefile出现同名目标时当多处出现同一目标命令时,make发出警告, 所有之前定义的命令被最后定义的命令取代all : @echo "target all 1" all : @echo "target all 2"什么是隐式规则make提供了一些常用的,例行的规则实现当相应目标的规则未提供时,make尝试使用隐式规则,如果make找不到相应的隐式规则,才会...原创 2019-08-03 17:24:46 · 1000 阅读 · 0 评论 -
makefile学习(七):全局变量和局部变量
7.makefile中的全局变量和局部变量问题:makefile变量与C/C++等高级语言的变量有什么区别?我们首先回忆一下C语言关于变量的特点吧:变量分为全局变量和局部变量:区别在于作用域不同,存储区域不同变量需要声明类型才能使用:如int、char、float等变量初始化:全局变量初始化默认为0,局部变量初始化为不确定值通过extern关键字可以在多个源文件共同使用同一个变量...原创 2019-07-25 11:13:14 · 7300 阅读 · 0 评论 -
makefile学习(六):变量的高级主题
6.变量的高级主题变量的替换变量值的替换使用指定字符(串)替换变量值中的后缀字符(串)语法格式:$(var:a=b) 或 ${var:a=b}替换表达式中不能有任何的空格make中支持使用 ${} 对变量进行取值变量的模式替换使用%保留变量值中的指定支付,替换其他字符语法格式:$(var:a%b=x%y) 或 ${ var:a%b=x%y }替换表达式中不能有任何空格...原创 2019-07-25 11:11:38 · 162 阅读 · 0 评论 -
makefile学习(五):预定义变量的使用
5.预定义变量的使用学自<狄泰软件学院>在makefile中存在一些预定义的变量自动变量$@, $^, $<特殊变量(MAKE) , (MAKECMDFOALS) , (MAKEFILE_LIST)(MAKE_VERSION), (CURDIR) , (.VARIABLES)….自动变量$@: 当前规则中触发命令被执行的目标...原创 2019-07-25 11:10:08 · 743 阅读 · 0 评论 -
makefile学习(四):makefile的变量
4.makefile的变量学自<狄泰软件学院>makefile变量的概念makefile中支持程序设计语言中的变量的概念makefile中的变量只代表文本数据(字符串)makefile中的变量名规则变量名可以包含字符,数字,下划线不能包含 ”:”,”#”,”=” 或 “ ”变量名大小写敏感变量的定义和使用makefile中变量的赋值方式简单赋值 ( :...原创 2019-07-25 11:08:51 · 298 阅读 · 0 评论 -
makefile学习(三):伪目标的引入
3.makefile伪目标的引入问题:makefile中的目标究竟是什么?makefile的目标make认为目标对应着一个文件make比较目标文件和依赖文件的新旧关系,决定是否执行命令make以文件处理作为第一优先级当我们不需要目标是一个文件时,只是需要指向相应的命令就可以了。但是如果存在一个与这个目标同名的文件时,make就会先去判断这个文件是否最新,在判断是否执行该目标的命令。...原创 2019-07-25 11:00:03 · 293 阅读 · 0 评论 -
makefile学习(二):makefile的结构
2.makefile的结构makefile的意义makefile用于定义源文件间的依赖关系makefile说明如何编译各个源文件并生成可执行文件makefile的基本结构targets (目标)通常是需要生成的目标文件名make所需执行的命令名称targets可以包含多个目标,使用空格对多个目标进行分隔。不带参数时,make将以文件中定义的第一个目标作为这次运行的目标。p...原创 2019-07-25 10:58:38 · 607 阅读 · 0 评论 -
makefile学习(一):make和makefile
1.make和makefile什么是make?为什么需要make?什么是make?make是一个特殊功能的应用程序解析源程序之间的依赖关系根据依赖关系自动维护编译工作执行宿主操作系统中的各种命令什么是makefile?Makefile是一个描述文件定义一系列的规则来指定源文件编译的先后顺序拥有特定的语法规则,支持函数定义和函数调用能够直接集成操作系统中的各种命令ma...原创 2019-07-25 10:57:06 · 267 阅读 · 0 评论 -
makefile学习(十一):make的路径搜索
前言工程项目中不可能吧全部源文件放到同一个文件夹里为了项目管理,会根据功能或者代码架构,吧源文件放到不同的目录下.项目中的makefile必须能够正确定位源文件和依赖文件,最终编译产生可执行程序.特殊的与定义变量VPATHVPATH变量的值用于指示make如何查找文件不同文件夹可作为VPATH的值同时出现文件夹的名字之间需要使用分隔符进行区分例如:VPATH := inc src...原创 2019-08-06 17:31:18 · 1958 阅读 · 0 评论