物联网工程实践日报表4

|

项目名称【苏嵌实训-嵌入式 linuxC 第1天】
今日进度以及任务作业 1、编译器三级优化分别优化了什么?2、总结gcc静态库和动态库的制作?3、总结cmake的用法
本日任务完成情况(详细说明本日任务是否按计划完成,开发的代码量创建了动态库和静态库,自学了cmake的使用
本日开发中出现的问题汇总在学习动态库静态库的建立时很多指令不熟,反复看了几遍视频才学会,还有就指令问题,依旧不是特别熟练
本日未解决的问题
本日开发收获学习了动态库静态库的使用,并了解了从源文件到可执行文件的过程,学习了gcc,gdb,cmake等开发工具
其他老师讲课速度有点快,不能很好的跟上老师的节奏

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

2、总结gcc静态库和动态库的制作?
.静态库:
生成test.o目标文件,使用gcc -c test.c -o test.o命令,使用ar将test.o打包成libtest.a静态库,使用ar rcs -o libtest.a test.o命令

动态库:生成test.o目标文件,使用-shared参数生成动态库

总结cmake的用法
CMakeLists.txt文件内容如下:
cmake_minimum_required(VERSION 2.8)
project (hello)
add_executable(hello hello.c)

注释:
这个示例中我们只有一个源文件hello.c,目标是生成一个hello的可执行文件。运行
cmake .后生成Makefile文件,. 代表CMakeLists.txt在当前目录下,再make即可生成hello的可执行文件。
第一行用于指定cmake最低版本。
第二行指定项目名称。
第三行指定编译一个可执行文件,hello是第一个参数,表示生成可执行文件的文件名,第二个参数hello.c则用于指定源文件。
包含目录的使用:

cmake_minimum_required(VERSION 2.8)
project (hello)
include_directories(inc)
set(SOURCES src/hello.c)
#file(GLOB SOURCES “src/*.c”)
add_executable(hello ${SOURCES})

注释:
当前工程目录结构为:
├── CMakeLists.txt
├── inc
├──└─ hello.h
├── src
├──└─hello.c

使用include_directories() 包含头文件目录。
使用set(SOURCES … ) 或GLOB (or GLOB_RECURSE) 设置变量SOURCES。
add_executable 使用变量SOURCES ,而不是具体的文件名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值