苏嵌实训-嵌入式linuxC第4天

项目名称 苏嵌实训-嵌入式linuxC第4天
今日进度以及任务 今日进度分为四部分:编译器-gcc 调试器-gdb 工程管理器-make 脚本语言-shell
本日任务完成情况 学习了编译器-gcc 调试器-gdb 工程管理器-make,并且对每一个都进行了举例分析包括自主操作
本日开发中出现的问题汇总
本日未解决的问题
本日开发收获 学会了编译器-gcc 调试器-gdb 工程管理器-make,在老师所给时间里完成老师所布置的小练习
其他

一、编译器-gcc
1、简介
交叉编译器,它能够在当前CPPU平台上为多种不同的硬件系统
在当前CPU平台下编译出在其他CPU平台运行的可执行文件 每款CPU有不同的汇编指令
源文件到可执行文件的步骤:预处理–编译–汇编–链接
预处理:头文件展开–宏替换–#ifndef/#else/#endif/
头文件展开:头文件的搜索路径不同:<>仅在系统的头文件目录搜索/usr/include “”:先在当前目录,找不到,再到系统的头文件目录查找
编译:将预处理文件编译生成汇编文件 .s -s
汇编:将汇编文件编译生成目标文件 .o -c
链接:将目标文件编译生成可执行文件
2、编译选项:-D -l -O1 -O2 -O3 -w -Wall
3、静态库与动态库的制作与使用(重点)
1、库文件的作用:仓库(保存函数和变量 )特点(只能使用不能看到其实现)C库:scanf printf strcpy malloc
2、Linux库文件的分类:/usr/lib /lb
静态库.a:在编译时加载,在编译过程中将从静态库中搬迁到源文件
动态库.so:在运行时加载,将需要的函数和变量,在运行过程中需要什么搬迁什么
使用静态库和使用动态库生成的可执行文件的区别:
大小:静态库>动态库 内存效率
运行速度:静态库>动态库 节省了运行时间
升级的方便程度:静态库<动态库
程序的部署方便程度:静态库>动态库
二、调试器-gdb
1、简介
2、使用
3、调试段错误
三、工程管理器-make
1、简介
2、makefile文件编译写法
3、标准工程目录的构成与makefile的编写
四、脚本语言-shell

作业:
1、编译器三级优化分别优化了哪些?
https://blog.csdn.net/zwt0112/article/details/53141752
2、总结 gcc静态库和动态库的制作?
https://blog.csdn.net/ly0303521/article/details/64442016
3、总结CMake的用法
https://blog.csdn.net/herojia_1/article/details/12619151

你可能感兴趣的:(笔记,linux)