美文网首页
嵌入式day14

嵌入式day14

作者: 小土豆dy | 来源:发表于2019-08-09 19:15 被阅读0次

    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=var

    • 简单方式VAR: =var

    变量使用($(VAR))

    用“$$”来表示“$”

    类似于编程语言中的宏

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

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

    自动变量

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

    Make使用

    直接运行make

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

    Makefile的隐含规则

    • 编译C程序的隐含规则

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

    • 链接Object文件的隐含规则

    <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. 数据运算

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

    相关文章

      网友评论

          本文标题:嵌入式day14

          本文链接:https://www.haomeiwen.com/subject/ughkjctx.html