
Makefile
文章平均质量分 73
宁静以致墨
慢下来,享受技术,找一个安静的位置
展开
-
makefile 学习笔记(二)
x = variable1variable2 := Helloy = (subst1,2,(subst 1,2,(subst1,2,(x))z = ya := (((($(z)))最终,(a)的值就是(a)的值就是(a)的值就是(variable2)的值—— “Hello”。a := (((($(z))):= ((((subst 1,2,$(x))):= ((((subst 1,2,variable1))subst函数把“variable1”中的所有“1”字串替换成“2”字串:= (((原创 2021-09-23 09:09:39 · 393 阅读 · 0 评论 -
Makefile = := ?= +=这几个赋值运算符
在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VREVRE = “Hello World!”elseendififeq ($(OPT),define)VRE ?= “Hello World! First!”endififeq ($(OPT),add)VRE += “Kelly!”endififeq ($(OPT),recover)VRE := “Hello转载 2021-09-16 14:54:18 · 366 阅读 · 0 评论 -
makefile 学习笔记(一)
edit : main.o kbd.o command.o display.o /insert.o search.o files.o utils.occ -o edit main.o kbd.o command.o display.o /insert.o search.o files.o utils.omain.o : main.c defs.h cc -c main.ckbd.o : kbd.c defs.h command.h cc -c kbd.ccomma原创 2021-09-14 08:36:54 · 385 阅读 · 0 评论 -
初识 Makefile
三、在规则中使用通配符make支持三各通配符:“*”,“?”和“[...]”.波浪号(“~”)字符在文件名中也有比较特殊的用途。如果是“~/test”,这就表示当前用户的$HOME目录下的test目录.print: *.clpr -p $?touch print目标print依赖于所有的[.c]文件。其中的“$?”是一个自动化变量.Makefile中的变量其实就是C/C++中的宏。Makefile...转载 2018-04-23 15:06:30 · 237 阅读 · 0 评论 -
makefile中=和:=的区别
1、“=” make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子: x = foo y = $(x) bar x = xyz 在上例中,y的值将会是 xyz bar ,而不是 foo bar 。 2、“:=”...转载 2018-05-15 13:45:40 · 3183 阅读 · 1 评论 -
程序的连接和编译过程
连接(linking)是将各种代码和数据片段收集并组合称为一个单一文件的过程,这个文件可被加载(复制)到内存并执行。在早期的计算机系统中,连接时手动执行的。在现代系统中,连接是由叫做连接器(linker)的程序自动执行的。main.csum.c大多数编译系统提供编译器驱动程序(compiler driver),它代表用户在需要时调用语言预处理器、编译器、汇编器和连接器...原创 2019-06-14 11:40:06 · 949 阅读 · 0 评论 -
编译的目标文件解析
.data和.bss节之间区别的简单方法是把“bss”看成是“更好节省空间(Better Save Space)”缩写。.bss 块储存开始(Block Storage Start)夹在ELF头和节头部之间的都是节。一个典型的ELF可重定位目标文件包含下面几个节:.text: 已编译程序的 机器代码。.rodata: 只读数据,比如printf语句中的格式串和开关语句的跳转表。...原创 2019-06-17 09:37:29 · 350 阅读 · 0 评论