项目日报表

项目开发日报表

项目名称苏嵌实训-嵌入式linux C第二天
今日进度以及任务学习gcc指令,了解调试器gdb,make指令及makefile的编写
本日任务完成情况(详细说明本日任务是否按计划完成,开发代码量学习了gcc编译器相关指令,掌握了制作静态库和动态库,接触了调试器gdb,make指令的使用方法,还有makefile文件的编写
本日开发中出现的问题汇总gdb调试有些问题,cmake安装出现问题,
本日未解决的问题
本日开发收获gcc相关指令有所掌握,学会了debug调试,预处理中编译汇编链接文件产生,静态库动态库如何制作也有相应收获,通过交叉编译可以在当前CPU平台下编译出在其他CPU平台运行的可执行文件
其他

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

GNU编译器提供-O选项供程序优化使用:
-O 提供基础级别的优化
-O2 提供更加高级的代码优化,会占用更长的编译时间
-O3 提供最高级的代码优化
-O4 不优化,这是默认值
不同的优化级别使用的优化技术也可以单独的应用于代码。 可以使用-f命令行选项引用每个
单独的优化技术。

第一级:代码调整

代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题; 所以:语句调整,用汇编重写、指令调整、换一种语言实现、换一个编译器、循环展开、参数传递优化等都属于这一级;

第二级:新的视角

新的视角强调的重点是针对问题的算法;即选择和构造适合于问题的算法;(冒泡排序还是快排的选择问题是这一级早就应该完成的)很多经典算法都对问题作了一些假设(包括我们当前已经完成的算法实现),而在面对实际问题时“新的视角”提示我们应该重新检视这些假设,并尝试不同的思考问题的角度,寻求适合于问题的新算法;
发掘问题的本来意义,从不同的角度思考面对的问题,使用适合于问题的的算法; 尝试打破一些规则,发掘和怀疑自己的某些假定,恢复问题的本来面目;

第三级:表驱动状态机

将问题抽象为另一种等价的数学模型或假想机器模型,比如构造出某种表驱动状态机;这一级其实是第二级的延伸,只是产生的效果更加明显,但它有其本身的特点(任何算法和优化活动都可以看作是他的投影);这一级一般可以产生无与伦比的快速程序, 要达到这一级需要大量修炼的;并且思考时必须放弃很多已有的概念或者这些概念不再重要,比如:变量、指针、空间、函数、对象等,剩下的只应该是那个表驱动状态机; 我想把这种境界描述为:空寂中,一些输入驱动着一个带有状态的机器按设定好的最短路线运转着;除此之外have nothing; 既:把解决一个问题的算法看作一个机器,它有一些可变的状态、有一些记忆、有一些按状态运行的规则,然后一些输入驱动这个机器运转;这就是第三级要求的思考优化问题的切入点,也就是寻找一部机器,使它运行经过的路径最短(可能是速度也可能是空间等等)。

总结gcc静态库和动态库的制作;

一,静态库

先创建正确的.c文件,再将其编译成.o文件,
在这里插入图片描述接着通过ar rcs libadd.a add.o指令生成对应静态库,在这里插入图片描述这里声明libadd.a中add为真正的库名,最后通过-ladd链接库并编译即可。其中可通过-L指明路径。

二,动态库

动态库只需将上叙指令变为 gcc -shared -fFIC add.c -o libadd.so即可生成libadd.so的动态库。
在这里插入图片描述

总结CMake用法

cmake基本操作在这里插入图片描述

在终端下切到main.c所在的目录下,然后输入cmake . 运行

在这里插入图片描述

查看目录

在这里插入图片描述

成功生成了Makefile,在终端下输入make并回车

在这里插入图片描述

成功运行

在这里插入图片描述

修改CMakeLists.txt,在add_executable的参数里把其他源文件加进来

在这里插入图片描述

重新执行cmake .生成Makefile

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值