物联网工程实训 第 2天

项目名称 苏嵌实训-嵌入式 linux C 第2天
今日进度以及任务 了解了些许C语言编译器的相关知识;学习了gdb和make的使用
本日任务完成情况 完成情况良好
本日开发中出现的问题汇总:
本日未解决问题:
本日开发收获: 复习了C语言有关知识,温习了linux操作指令

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

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

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

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


2、总结gcc静态库和动态库的制作;
静态库制作:
gcc -c src/add.c -o add.o //制作obj文件
ar -crv lib/libadd.a add.o //制作归档文件
gcc src/main.c -Llib -ladd -o main //加上L(指明链接目录) l(指明链接库名)

动态库制作(.so):
gcc -shared -fPIC -o lib/libadd.so src/add.c
或者 gcc -fPIC -c src/add.c
gcc -shared -o libadd.so add.o
3、总结CMake用法;
1、cmake_minimum_required(VERSION 2.8)2、project (hello)3、add_executable(hello hello.c)4、cmake_minimum_required(VERSION 2.8)5、project (hello)6、include_directories(inc)7、set(SOURCES src/hello.c)8、#file(GLOB SOURCES “src/*.c”)9、add_executable(hello ${SOURCES})

你可能感兴趣的:(物联网工程实训 第 2天)