3.10知识点

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

Linux文本编辑器:vim–功能最强大的文本超级器​—摆脱鼠标
vi—vim​–gvim:命令行模式(nyy\p\ndd\u) 插入模式(i , a) 底行模式(shift+:)
如何配置vim?​/etc/vim/vimrc set number

嵌入式Linux开发工具-gcc
编译器:gcc(GND cc)​
1、gcc特点(GUN工具、交叉编译器arm-linux-gcc)​
什么是交叉编译器?!!!重要//为什么需要交叉编译器?
源文件到可执行文件需要经历哪几个步骤?
预处理、编译、汇编、链接
(PC:x86)
hello.c gcc hello.c a.out./a.out—>Linux手机(ARM)​ 不行 汇编指令不同 机器码只能x86识别,(ARM)不识别x86指令
交叉编译:在当前CPU平台下编译出在其他CPU平台下可执行的代码​
系统移植最重要的是交叉编译​
预处理:头文件展开,宏替换,​条件编译
编译:将预处理文件编译成汇编文件.s
汇编:将汇编文件编译成目标文件.o
链接:​建立符号表—可执行文件 a.out
-o:重命名可执行文件​
一、常用的编译选项
-E -S -c -​o -I -D
-Wall -w​ 编译器的优化选项
二、静态库和动态库的制作​
1、什么是库文件?保存函数和变量(仓库)​ 特点:保存的函数与变量 只能使用但不能看到其实现
2、Linux库文件
静态库:在编译阶段加载 (将库文件的代码加载到源文件)​ .so
动态库:在运行时加载 .a
生成的可执行文件存在区别(优缺点)​
//旅行 静态库类似旅行前买的东西 已经存在,动态库类似于在旅行中买东西
1.使用静态库生成的可执行文件大于动态库生成的可执行文件(程序运行占用内存较多)​
2.在软件升级来讲,使用静态库生成的可执行文件难以升级,使用动态库生成的可执行文件易于升级。//​静态库在移植的时候采用(一般不采用)
3.从运行速度来讲,使用静态库生成文件运行速度快,动态库生成文件运行速度慢。
4.使用静态库可执行文件里的代码容易部署,动态库难以部署。​
3、Linux库文件存放路径:(文件搜索路径)
/lib:存放的系统运行所需要的库
/user:存放的是程序所需要的文件

如何制作静态库?
1、将需要保存的函数所在的文件编译生成为目标文件gcc-c add.c —>add.o
2、静态库的制作工具:ar
ar rcs(不存在就创建,存在就更新)​ 库名 目标文件名
ar rcs libadd.a add.o
(cp liadd.a/lib or/usr/lib)
3、使用
gcc源文件 -l库名 -L库存放的路径
gcc main.c -ladd -L​ -o add
如何制作动态库?
gcc -shared -fPIC 源文件 -o libcal.so
gcc -shared -fPIC​

发布了11 篇原创文章 · 获赞 0 · 访问量 219

猜你喜欢

转载自blog.csdn.net/maxiaotiaobutiao/article/details/104908858
今日推荐