嵌入式3.10总结

linux一切为文件(-普通文件d目录文件c/d设备文件l链接文件
p管道文件f堆栈文件s共享文件)
根目录结构(sys proc lib)
功能命令(grep sed awk find which)
软件安装 apt-get install

linux开发工具(vim,gcc,gdb,make)
vim(文本编辑器):学会使用和配置
gcc(编译器):学会制作动态库和静态库及使用与区别
gdb(调试器):设置断点,单步执行,调试内存错误
make(工程管理器):编写makefile文件

文本编辑器vim-功能最强大的文本编辑器(摆脱鼠标)
vi–vim–gvim:命令行esc,插入i/a,底行模式:
复制2yy粘贴p删除2dd恢复u
配置vim:/etc/vim/vimrc
IDE(集成开发环境)取代了vim–vscode

嵌入式linux开发工具-gcc
编译器:gcc(GNU cc)
gcc特点(GNU工具,交叉编译器arm-linux-gcc)
什么是交叉编译器?在当前cpu平台下(宿主机)编译出在其他(目标机)可执行
源文件到可执行文件需要经历哪几个步骤(预处理,编译,汇编,链接)
预处理:头文件展开,宏替换,条件编译(gcc -E)<>系统的头文件目录(/usr/include)""当前目录-系统头文件-I指定目录-D宏条件
编译:将预处理文件编译成汇编文件.s(gcc -S)
汇编:将汇编文件编译生成目标文件.o(gcc -c)
链接:建立符号表–可执行文件a.out(gcc -o重命名可执行文件)-O3运行优化,-Wall报错原因

制作静态库和动态库
什么是库文件?保存函数和变量,特点:保存物只能使用不能看到实现
静态库(.a):在编译阶段加载;动态库(.so):在运行时加载
生成的可执行文件优缺点:
1.静态库生成的可执行文件大于动态库生成,程序运行占用内存多
2.静态库生成的可执行文件难以升级
3.静态库生成可执行文件运行速度快
4.静态库可执行文件内代码容易部署
linux文件存放路径:
/lib系统运行需要;/usr/lib程序运行需要

如何制作静态库:
1.将需要保存的函数所在的文件编译生成目标文教(gcc -c)
2.静态库的制作工具:ar rcs 库名 目标文件名
3.使用: gcc 源文件 -l库名 -L库存放的路径

如何制作动态库?
gcc -shared -fPIC 源文件 -o 新命名.so

作业:gcc -static作用

发布了4 篇原创文章 · 获赞 0 · 访问量 137

猜你喜欢

转载自blog.csdn.net/weixin_46412477/article/details/104881872