您的位置:首页 > 运维架构 > Linux

苏嵌嵌入式linux实训 第 3 天

2020-07-14 06:33 176 查看

项目名称: 未拟定

本人进度计划以及任务:嵌入式Linux开发工具-gcc、gdb、make


本日任务完成情况 (详细说明本日任务是否按 计划完成,开发的代码量): 认真学习了这些重要的工具。


本日开发中出现的问题汇总:

Q1:何为编译器的三级优化,且三级优化有哪些?

第一级:代码调整

  代码调整是一种局部的思维方式;基本不触及算法层级;仅面向代码,包含:语句调整,汇编重写、指令调整、换一种语言实现、换一个编译器、循环展开、参数传递优化等。

第二级:新的视角

  新的视角强调对问题的算法;即选择和构造适合于问题的算法;例如冒泡排序和快排的选择;经典算法对问题作了一些假设,在面对实际问题时“新的视角”提示我们应该重新检视这些假设,并尝试不同的思考问题的角度,寻求适合于问题的新算法。

第三级:表驱动状态机

  这一级已经将问题抽象为另一种等价的数学模型或假想机器模型,比如构造出某种表驱动状态机;这一级其实是第二级的延伸,只是产生的效果更加明显,但它有其本身的特点(任何算法和优化活动都可以看作是他的投影);既:把解决一个问题的算法看作一个机器,它有一些可变的状态、有一些记忆、有一些按状态运行的规则,然后一些输入驱动这个机器运转;这就是第三级要求的思考优化问题的切入点,也就是寻找一部机器,使它运行经过的路径最短(可能是速度也可能是空间等等)

Q2:总结gcc静态库和动态库的制作.

(1)静态库的制作

首先写源代码:vim add.c

之后编译成目标文件:gcc -c add.c

生成静态库:ar rcs libadd.a add.o(libadd.a中add为库命,其他为前后缀)

使用静态库,并加上链接:gcc main.c -ladd -L. -o main(-l指定库,-L指定库的路径)

(2)动态库的制作

命令:gcc -shared -fPIC add.c -o libadd.so

使用需要加上路径:gcc main.c ./libadd.so -o main

Q3:总结CMake的使用方法.

下载gz包,解压:tar -zxvf cmake-3.10.2.tar.gz

1.流程

  1. 编写 CmakeLists.txt。
  2. 执行命令“cmake PATH”或者“ccmake PATH”生成 Makefile ( PATH 是 CMakeLists.txt 所在的目录 )。
  3. 使用 make 命令进行编译。

2.编写源文件main.c;再编写CmakeList.txt

3.命令:cmake  ;可得到makefile文件,即可make编译了。

 

 

本日未解决问题:gcc编译找不到位置

 

 

 

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