
GNU
媳妇控
linuxer
展开
-
makefile整体性的一些概念
makefile的规则/***************************************************************************************************makefile的规则是makefile最核心的部分,规则的基本格式如下: 目标 ... : 依赖对象 ... 命令原创 2017-05-16 19:33:47 · 412 阅读 · 0 评论 -
GNU make手册翻译系列(1)
前言本系列翻译参考网上广传的<<GNU make中文手册>>,之所以要再次翻译一遍原因有二: 原有翻译基于V3.8版本的GNU make,跟手头版本V4.2已经存在不少差异; 通过翻译深入理解GNU make另,翻译未按照手册章节顺序进行,不保证全部章节翻译,翻译内容尽量不添加个人观点.4 规则书写 Makefile中的规则描述了...原创 2018-05-04 14:34:11 · 644 阅读 · 0 评论 -
GNU make手册翻译系列(2)
4.2 依赖类型 实际上有两种不同类型的依赖可以被GNUmake程序理解:一种是之前章节中描述的常规依赖;另一种是"order-only"依赖.常规依赖主要陈述了两件事:首先,由于目标的配方在执行之前必须确保该目标的所有常规依赖都已经更新,所以这些常规依赖的书写顺序决定了各自的更新顺序;其次,它确定了一个依赖关系,就是如果有任意一个常规依赖比目标新,那么就认为目标已经过期而需要被重...原创 2018-05-04 16:29:22 · 193 阅读 · 0 评论 -
GNU make手册翻译系列(5)
4.6 没有配方或依赖的规则 如果一条规则没有配方或依赖,并且规则的目标不是一个存在的文件名,则执行此规则时,make就认为它的目标已经被更新过.这样的目标在作为一个规则的依赖时,因为依赖总被认为被更新过,因此作为依赖所在的规则中定义的命令总会被执行.看一个例子: clean: FORCE rm$(objects)FORCE:这个例子中,目标"FORCE"就...原创 2018-05-11 15:20:09 · 388 阅读 · 0 评论 -
GNU make手册翻译系列(3)
4.3 文件名使用通配符 单个文件名中可以使用通配符来指定许多文件.Makefile中的通配符和Bourneshell一样,包括"*","?","[...]".例如,"*.c"代表了当前工作目录下所有的以".c"结尾的文件. 以字符"~"开始的文件名有特殊的含义.当单独使用它或者其后跟一个斜线时,它都代表了你的home目录,例如"~/bin"原创 2018-05-05 12:04:21 · 302 阅读 · 0 评论 -
GNU make手册翻译系列(4)
4.5 伪目标 有这么一种目标,它不代表一个真正的文件名,执行make时可以指定这个目标来执行其所在规则定义的一系列配方,这种目标就叫伪目标.使用伪目标有两个原因:一个是避免跟同名文件出现冲突,另一个是提高执行make 时的效率. 如果你要书写这么一条规则:它的配方不会创建目标文件,并且反复指定make该目标时,它的配方都会被执行.下面就是一个例子: clean: ...原创 2018-05-08 14:55:17 · 236 阅读 · 0 评论 -
i386和arm32架构下函数栈帧分析
栈帧的实现实际跟系统本身的架构密切相关,这里主要对i386和arm32两种架构下的栈帧展开分析。下面关于栈帧的分析都将基于这个例子进行:int func(int a,int b){ int sum; sum = a + b; return sum;}int main(void){ int sum; sum = func(1,2); ...原创 2018-10-24 15:15:36 · 1422 阅读 · 0 评论