嵌入式day14

2019-08-09  本文已影响0人  小土豆dy

Makefile

test:f1.o f2.o main.o
 gcc f1.o f2.o main.o -o test
f1.o:f1.c
 gcc -c -Wall f1.c -o f1.o
f2.o:f2.c
 gcc -c -Wall f2.c -o f2.o
main.o:main.c
 gcc -c -Wall main.c -o main.o
clean:
 rm *.o test

创建和使用变量

创建变量的目的:用来代替一个文本字符串

  1. 系列文件的名字

  2. 传递给编译器的参数

  3. 需要运行的程序

  4. 需要查找源代码的目录

  5. 你需要输出信息的目录

  6. 你想做其他事情

变量定义的两种方式

变量使用($(VAR))

用“$$”来表示“$”

类似于编程语言中的宏

用这种方式定义的变量,会在变量的定义点,按照被引用的变量的当前值进行展开

这种定义变量的方式更适合在大量的编程项目中使用,因为它更像我们一般的编程语言

自动变量

$* 不包含扩展名的目标文件名称
$+ 所有依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件
$< 第一个依赖文件的名称
$? 所有时间戳比目标文件晚的依赖文件,以空格分开
$@ 目标文件的完整名称
$^ 所有不重复的目标依赖文件,以空格分开
$% 如果目标是归档成员,则该变量表示目标的归档成员名称

Make使用

直接运行make

选项 含义
-C dir读入指定目录下的Makefile
-f file读入当前目录下的file文件作为Makefile
-i 忽略所有的命令执行错误
-I dir指定被包含的Makefile所在目录
-n 只打印要执行的命令,但不执行这些命令
-p 显示make变量数据库和隐含规则
-s 在执行命令时不显示命令
-w 如果make在执行过程改变目录,打印当前目录名

Makefile的隐含规则

<n>.o”的目标的依赖目标会自动推导为“<n>.c”,并且其生成命令是$(CC) -c $(CPPFLAGS) $(CFLAGS)

<n>”目标依赖于“<n>.o”,通过运行C的编译器来运行链接程序生成(一般是“ld”),其生成命令是:$(CC) $(LDFLAGS) <n>.o

$(LOADLIBES) $(LDLIBS这个规则对于只有一个源文件的工程有效,同时也对多个Object文件(由不同的源文件生成)的也有效。

Makefile的VPATH

VPATH:(虚路径)在make需要去找寻依赖关系时,在文件前加上路径,把路径告诉make。


数据结构

数据结构概念

数据结构是研究组成数据的数据元素的关系的学科。

数据结构研究的目的

通过研究数据元素的关系,帮助我们在开发软件的时候更好的组建数据模型,让数据在内存中的操作更加的流畅高效。

数据

数据即信息的载体,是能够输入到计算机中并且能被计算机识别、存储和处理的符号总称。

数据元素

数据元素是数据的基本单位,又称之为记录(Record)

数据项

数据元素由若干数据项组成,数据项是数据中的最小单位。

数据类型

数据类型是对数据元素取值范围与运算的限定。

数据结构(DS)可用形式化语言描述,即DS是一个二元组:DS = (D, R),其中D为数据元素的集合,R为D上关系的集合。

数据之间的相互关系

  1. 逻辑结构:

表示数据元素之间的抽象关系(如邻接关系、从属关系等)。

有四种基本的逻辑结构:集合结构、线性结构、树形结构、图状结构

  1. 存储结构

    数据的逻辑结构在计算机内的存储形式。

分为顺序存储结构、链接存储结构、索引存储结构、散列存储结构

  1. 数据运算

对数据进行的操作,如插入、删除、查找、排序等。

上一篇下一篇

猜你喜欢

热点阅读