您的位置:首页 > 其它

嵌入式正式培训第二天(20200706)日报表

2020-07-14 06:33 31 查看

姓名:吴航     班级:物171

项目名称 【苏嵌实训—Linux C第  2  天】
今日进度及任务 学习linux下的编译
本日任务完成情况 基本完成解决
本日开发中出现的问题 静态库和动态库的创建还是不能很好地独立完成
本日开发收获 对Linux环境下编程越来越有好奇心,会了Linux下的编译,知道了源文件到可执行文件的过程

今日问题:

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

答:第一级:代码调整 。代码调整是一种局部的思维方式;基本上不触及算法层级;它面向的是代码,而不是问题; 所以:语句调整,用汇编重写、指令调整、换一种语言实现、换一个编译器、循环展开、参数传递优化等都属于这一级; 第二级:新的视角 。
新的视角强调的重点是针对问题的算法;即选择和构造适合于问题的算法;第三级:表驱动状态机 。将问题抽象为另一种等价的数学模型或假想机器模型,比如构造出某种表驱动状态机;这一级其实是第二级的延伸,只是产生的效果更加明显。

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

答:

静态库的制作:

head .h 放在 include 文件夹

[code]#ifndef HEAD_H
#define HEAD_H

#include <stdio.h>

int add(int, int);
int sub(int, int);
int mul(int, int);

#endif

add.c,sub.c,mul.c放在  src 文件夹下, 

[code]int add(int a, int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
int mul(int a, int b)
{
return a * b;
}

生成 .o 文件

[code]gcc *.c -c -I ../include

生成静态库

[code]ar rcs libMyCalc.a *.o

动态库的制作:

生成 .o 文件

[code]gcc -fPIC -c *.c -I ../include

生成动态库

[code]gcc -shared -o libMyCalc.so *.o -I ../include

3.总结CMake的用法。

答:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: