苏嵌嵌入式linux实训 第2天

项目开发日报表:

项目名称苏嵌实训-嵌入式Linux 第2天
今日进度及任务学习开发工具 gcc,gdb,make的使用。
静态库,动态库的创建。
任务完成情况课堂笔记已整理,课内题目已完成
开发时出现的问题
未解决的问题课堂上学习时老师布置的题目完成的比较慢,需要课下再花时间多练习学习
开发收获基本了解和使用开发工具: 编译器ggc,调试器gbd,工程管理器make。
学会创建基础的静态库和动态库
其他

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

(2)新的视角 :
    新的视角强调的重点是针对问题的算法;即选择和构造适合于问题的算法;(冒泡排序还是快排的选择问题是这一级早就应该完成的)很多经典算法都对问题作了一些假设(包括我们当前已经完成的算法实现),而在面对实际问题时“新的视角”提示我们应该重新检视这些假设,并尝试不同的思考问题的角度,寻求适合于问题的新算法;

(3)表驱动状态机 :
    将问题抽象为另一种等价的数学模型或假想机器模型,比如构造出某种表驱动状态机;这一级其实是第二级的延伸,只是产生的效果更加明显,但它有其本身的特点(任何算法和优化活动都可以看作是他的投影);

2.总结gcc静态库和动态库的制作
假设需要完成这样一个项目:需要对整数进行加减乘除。

根据已学知识,我们让add.c,sub.c文件分别包含加减函数,分开实现加法运算和减法运算。

add.c
在这里插入图片描述
sub.c
在这里插入图片描述
在main.c主程序中调用加法函数和减法函数进行运算

#include"stdio.h"
#include"add.h"
#include"sub.h"

int main()
{
	int m,n;
	printf("请顺序输入两个数字:");
	scanf("%d %d",&m,&n);
	printf("%d+%d=%d\n",m,n,add(m,n));
	printf("%d-%d=%d\n",m,n,sub(m,n));
}

编译运行项目,直接使用gcc命令完成。

合并静态库
![合并静态库](https://img-blog.csdnimg.cn/20200706221930659.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JhaW5fMDAwMA==,size_16,color_FFFFFF,t_70

合并动态库
合并动态库
3.总结CMake用法
以输出Hello World 为例展示CMAKE的用法:

main.c
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200706223908844.PNG

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project (demo)
add_executable(main main.c)

第一行:表示要求CMAKE最低版本是2.8
第二行:表示工程名为demo
第三行:第一个main指生成的elf文件名
        第二个main指源文件为main.c

在终端下切换到main.c的目录,输入命令:
cmake.
在这里插入图片描述输入make
在这里插入图片描述
生成的Makefile显示进度100%,并且有颜色。

测试程序
在这里插入图片描述
成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚风吹行舟01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值