【苏嵌实训-嵌入式 linux C 第 2 天】

项目名称 【苏嵌实训-嵌入式 linux C 第 2 天】
今日进度以及任务 嵌入式Linux开发工具-gcc、gdb、make
本日任务完成情况 已完成课上布置的3个小题作业,并把课上的笔记做了相应整理。
本日开发中出现的问题汇总
本日未解决问题 1、由于时间问题对cmake学习还不够深入,后期挤时间再多了解了解。
2、刚开始没找到在线安装cmake的命令,于是下载安装包进行安装的,但是安装完成之后查找cmake版本的时候总是显示找不到文件,虽然后面用在线安装的命令安装好了另一个版本 ,但是之前安装的版本无法下载,这个问题还有待解决。
本日开发收获 了解了编译器-gcc、调试器-gdb、工程管理器-make的基本使用,学会了创建简单的静态库和动态库以及cmake的简单使用。
其他

作业:

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

(1)-O1——代码调整 。代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题; 所以:语句调整,用汇编重写、指令调整、换一种语言实现、换一个编译器、循环展开、参数传递优化等都属于这一级。
(2)-O2——新的视角 。新的视角强调的重点是针对问题的算法;即选择和构造适合于问题的算法;(冒泡排序还是快排的选择问题是这一级早就应该完成的)很多经典算法都对问题作了一些假设(包括我们当前已经完成的算法实现),而在面对实际问题时“新的视角”提示我们应该重新检视这些假设,并尝试不同的思考问题的角度,寻求适合于问题的新算法;
(3)-O3——表驱动状态机 。将问题抽象为另一种等价的数学模型或假想机器模型,比如构造出某种表驱动状态机;这一级其实是第二级的延伸,只是产生的效果更加明显,但它有其本身的特点(任何算法和优化活动都可以看作是他的投影);

2.总结gcc静态库和动态库的制作?

add.c
【苏嵌实训-嵌入式 linux C 第 2 天】_第1张图片
add.h
【苏嵌实训-嵌入式 linux C 第 2 天】_第2张图片
sub.c
【苏嵌实训-嵌入式 linux C 第 2 天】_第3张图片
sub.h
在这里插入图片描述
main.c
【苏嵌实训-嵌入式 linux C 第 2 天】_第4张图片
合并静态库:
【苏嵌实训-嵌入式 linux C 第 2 天】_第5张图片
合并动态库:

【苏嵌实训-嵌入式 linux C 第 2 天】_第6张图片

3.CMake使用

Hello World

源代码:hello.c
【苏嵌实训-嵌入式 linux C 第 2 天】_第7张图片

CMakeLists.txt
【苏嵌实训-嵌入式 linux C 第 2 天】_第8张图片
第一行用于指定cmake最低版本
第二行指定项目名称(这个名称是任意的)
第三行指定编译一个可执行文件,hello是第一个参数,表示生成可执行文件的文件名(这个文件名也是任意的),第二个参数helloworld.cpp则用于指定源文件。
第一步,用cmake生成Makefile文件
【苏嵌实训-嵌入式 linux C 第 2 天】_第9张图片在这里插入图片描述
第二步,make编译程序 && 编译成功
在这里插入图片描述
第三步,测试程序
在这里插入图片描述

你可能感兴趣的:(苏嵌实训)