物联网实训第四天

项目名称 【苏嵌实训-嵌入式 linux C 第 4天】
今日进度以及任务 使用静态库和使用动态库生成的可执行文件的区别(优缺点)大小:静态库〉动态库内存效率运行速度:静态库〉动态库节省了运行时间编译速度:静态库〈动态库 了解了编译器编译过程(预处理,编译,汇编,链接)学会静态库与动态库的制作与使用
本日任务完成情况(详细说明本日任务是否按计划完成,开发的代码量) 动手编写制作了静态库和动态库,编写了Makefile文件
本日开发中出现的问题汇总 动手编写制作了静态库和动态库,编写了Makefile文件
本日未解决问题 编译器功能太多,记忆不住
本日开发收获 学习了gcc,gdb,cmake等开发工具

1、编译器三级优化分别优化了哪些?

第一级:代码调整 ,代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题

第二级:新的视角 ,新的视角强调的重点是针对问题的算法;即选择和构造适合于问题的算法

第三级:表驱动状态机 ,将问题抽象为另一种等价的数学模型或假想机器模型

2. 总结gcc静态库和动态库的制作;
静态库的创建:
创建:
gcc-c源文件.c
ar rcs静态库名 目标文件1目标文件2
rc:静态库不存在,就创建该库文件s:更新库文件

静态库的使用:
静态库创建成功后,然后对全局变量和函数进行声明,在编译的时候加上库文件就行!
gcc-o file flie.c-L.-Iname

动态库的创建:
gcc-shared-fPIC-o库名.so源文件.c
动态库的使用:
gcc源文件c./库名.s0-0可执行文件名
3、总结CMake的用法
调用makefile运行可以对多个文件进行分布编译,可定义make clean指令进行重新编译,方便后期修改.c文件

你可能感兴趣的:(物联网实训第四天)