苏嵌实训-嵌入式 linux C 第2天

-项目名称 - -【苏嵌实训-嵌入式 linux C 第2天-
-今日进度以及任务 -明白编译过程,学会gcc和gbd的使用,会制作gcc静态库和动态库,学会工程管理器make-
-本日任务完成情况- 知道了工程编译过程,学会了gcc和gbd,会制作gcc静态库和动态库,不太懂工程管理器make
本日开发中出现的问题汇总
本日未解决问题 不太懂工程管理器make的使用和makefile的建立
本日开发收获- 明白了预处理—编译—汇编—链接的编译过程,学会gcc和gbd的使用,会制作gcc静态库和动态库
其他

编译器三级优化分别优化了哪些?
1级:调整代码
面对代码, 语句调整,用汇编语言重写、指令调整、换一种语言实现、换一个编译器、循环展开、参数传递优化
2级 换新的视角.
针对问题重新选择和构造适合于问题的算法,尝试不同的思考问题的角度,寻求适合于问题的新算法。
3级 表驱动状态机
将问题抽象为另一种等价的数学模型或假想机器模型,它整合了第一和第二级别中的左右优化技巧, 还包括了一些优化。

总结gcc静态库和动态库的制作*
静态库:源程序在编译时就把静态库包含进来,生成一个可执行文件。
----- 先用gcc -c 把file.c变成.o文件
-----再ar rcs libfile.a file.把file封装成库
动态库:源程序生成可执行文件后,在运行时调用动态库。程序在内存中运行时,动态库才加载到内存中 。
-----先用gcc -c 把file.c变成.o文件
-----再 gcc -shared-fPIC-o 库名.so 源文件.c封装成库

总结CMake用法
cmake 会为项目自动生成Makefile,makefile是一种在工程方面的编译方法,
在所要编译的程序代码后使用和编译cmake命令会自动生成Makefile文件,测试程序就可以运行了。
cmake的优势在于管理庞大的项目,可以创建带目录结构的项目。其中有源文件目录,头文件目录,我们可以新建了一个文件目录来存储编译中间文件
使用add_executable(),用install指定安装目录,永sudo make install执行动态安装可以实现动态库编译。
将add_library中的shared改为static可以实现静态编译。

你可能感兴趣的:(苏嵌实训-嵌入式 linux C 第2天)