2010.3.10

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

1.文本编译器:vim最强大的文本编译器—目标—摆脱鼠标
vi—vim—gvim:命令行模式(nyy/p/dd/u) 插入模式(i,a) 底行模式(shift+:)
2.如何配置vim?etc/vim/vimrc
IDE(集成开发程序)
编译器:gcc(GNU/cc)
3.gcc特点(GNU工具、一款交叉编译器arm-linux-gcc)
4.什么是交叉编译器?
在内核源码在目标机执行的
5.为什么需要交叉编译器?
处理器不一样
6.源文件到可执行文件需要经历哪几步?
预处理、编译 汇编 链接
hello.c gcc hello.c a.out.—>Luniux手机(ARM)
在这里插入图片描述

7.交叉编译:在当前CPU平台下编译除在其他cpu平台下可执行代码
8.系统移植:在这里插入图片描述
9.
预处理:头文件展开,宏替换 ,条件编译
编译 将预处理文件编译成汇编文件,.s
汇编 将汇编文件编译生成目标文件.o
链接 建立符号表–可执行文件a.out
10.<>系统的头文件目录(usr/include)找不到会报错
""搜索路径是在当前目录查找,找不到再到系统的头文件目录查找
11.常用的编译选项
-I第三方路径 -D -E预处理停下 -C汇编结束 .o为目标文件
重命名可执行文件
-w 是警告信息去掉
-wall 开警告
编译器优化:-o1 -02 -03
12.
静态库和动态库
什么是库文件?保存函数和变量(仓库)
特点:保存的函数与变量,只能使用但不能看到其实现
13.
linux库文件
静态库:在编译阶段加载(将库文件的代码加载到源文件)
动态库:在运行时加载 jing太(.a) 动态(.os)
14.生成可执行文件存在区别(优缺点)
(1).使用静态库生成的可执行文件大于动态库(占用的内存较多);
(2).使用静态库生成的而可执行文件难以升级,使用动态库生成的可执行文件易于升级;
(3).使用静态库生成的可执行的文件运行速度快,
使用动态库生成的可执行的文件易于运行速度慢
(4).使用静态库可执行文件的代码容易部署,动态库难以部署

linux库文件存放文件(自动化搜录路径)
/Lib 存放的系统运行所需要的库
/usr/lib:存放的时程序运行所需要的库

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

如何制作动态库?
gcc -shared -fPIC yuanwenjian -o libcal.so
gcc -shared -fPIC add.c sub.c -o libcal.so
使用
cp libcal.so/usr/lib
gcc main.c -lacl
gcc main.c./libcal.so -o cal

退出
esc shift+: wq保存退出
ia 插入
etc /vim/vimrc
3dd 删除三行
10yy p复制
u是恢复

代码交流 2021